【发布时间】:2010-11-13 14:56:37
【问题描述】:
这里我有一个简单的例子来在字符串列表中查找一个项目。通常我使用for 循环或匿名委托来这样做:
int GetItemIndex(string search)
{
int found = -1;
if ( _list != null )
{
foreach (string item in _list) // _list is an instance of List<string>
{
found++;
if ( string.Equals(search, item) )
{
break;
}
}
/* Use an anonymous delegate
string foundItem = _list.Find( delegate(string item) {
found++;
return string.Equals(search, item);
});
*/
}
return found;
}
LINQ 对我来说是新的。我可以使用 LINQ 在列表中查找项目吗?如果可以,怎么做?
【问题讨论】:
-
太好了。但是,这些都是lamda的表达方式。我在这里使用一个简单的列表。该列表可能是一个具有多个属性的类,其中一些用于搜索。因此,任何 LINQ 搜索方式都可以像“从 .. in ... where... select...”
-
不,抱歉。这些方法中的大多数(First、Single、Any、...)都不能直接翻译成那种形式。
-
没关系,实际上你可以在少数情况下摆脱 lambdas...
-
很好的答案!我只是想从枚举案例中体验一下LINQ搜索。