在列表中查找内容的最佳方法是什么?我知道LINQ有一些不错的技巧,但我们也得到了C#2.0的建议.让我们为这个通用代码模式获得最佳重构.
目前我使用这样的代码:
// mObjList is a List<MyObject>
MyObject match = null;
foreach (MyObject mo in mObjList)
{
if (Criteria(mo))
{
match = mo;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
要么
// mObjList is a List<MyObject>
bool foundIt = false;
foreach (MyObject mo in mObjList)
{
if (Criteria(mo))
{
foundIt = true;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
Kon*_*lph 15
@Konrad:你怎么用它?假设我想将mo.ID与magicNumber匹配.
在C#2.0中你会写:
result = mObjList.Find(delegate(int x) { return x.ID == magicNumber; });
Run Code Online (Sandbox Code Playgroud)
3.0知道lambdas:
result = mObjList.Find(x => x.ID == magicNumber);
Run Code Online (Sandbox Code Playgroud)
使用 Lambda 表达式:
List<MyObject> list = new List<MyObject>();
// populate the list with objects..
return list.Find(o => o.Id == myCriteria);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13845 次 |
最近记录: |