Вы можете использовать каждый метод:
[1,2,3].every(function(el) {
return !(el === 1);
});
ES6
[1,2,3].every( el => el !== 1 )
для использования в старых браузерах:
if (!Array.prototype.every)
{
Array.prototype.every = function(fun /*, thisp*/)
{
var len = this.length;
if (typeof fun != "function")
throw new TypeError();
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in this &&
!fun.call(thisp, this[i], i, this))
return false;
}
return true;
};
}
больше подробности здесь .
Причина в том, что SelectedItems типизирован для коллекции, которая реализует IEnumerable. Метод расширения Select привязан к IEnumerable
. Следовательно, это не будет работать с SelectedItems.
Чтобы решить эту проблему, используйте метод расширения .Cast, чтобы получить соответствующий тип, и он должен появиться
ListView.SelectedItems.Cast<SomeType>.Select(...)
Он реализует IEnumerable, а не IEnumerable
- все запросы LINQ построены вокруг универсального интерфейса IEnumerable
, чтобы обеспечить безопасность типов и общий вывод - особенно при работе с анонимные типы.
Вместо этого вы можете использовать следующее:
myListView.SelectedItems.Cast<ListViewItem>.Select( ... );
Есть ли у вас «using System.Linq» в верхней части файла?
Это строго типизированная универсальная коллекция? Если нет, вам нужно использовать метод расширения Cast <>.