c# - 在列表中查找匹配项的最简洁方法

标签 c# refactoring

在列表中查找内容的最佳方式是什么?我知道 LINQ 有一些不错的技巧,但我们也可以获取有关 C# 2.0 的建议。让我们对这个通用代码模式进行最佳重构。

目前我使用这样的代码:

// mObjList is a List<MyObject>
MyObject match = null;
foreach (MyObject mo in mObjList)
{
    if (Criteria(mo))
    {
        match = mo;
        break;
    }
}

// mObjList is a List<MyObject>
bool foundIt = false;
foreach (MyObject mo in mObjList)
{
    if (Criteria(mo))
    {
        foundIt = true;
        break;
    }
}

最佳答案

@ Konrad: So how do you use it? Let's say I want to match mo.ID to magicNumber.

在 C# 2.0 中,您将编写:

result = mObjList.Find(delegate(int x) { return x.ID == magicNumber; });

3.0 知道 lambdas:

result = mObjList.Find(x => x.ID == magicNumber);

关于c# - 在列表中查找匹配项的最简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23787/

相关文章:

c# - 重构大开关盒以设置属性

c# - 在 MemoryStream 中拆分 mp3 音频的正确方法是什么?

c# - 在asp.net c#中将网页上的内容保存为.doc

javascript - 使用 jquery 显示基于复选框列表项的隐藏文本框

iphone - 编写此代码的更短方法?

c# - 如何使此类更易于重用? (具体例子里面)

C++:如何找出从已知 "unused"开始的 "point"类

c# - 从 ASP.NET MVC 路由生成 URL

c# - 如何使用 Linq 获取 sitecore 字段

c# - 如何在 C# 中重构 log4net 语句?