【问题标题】:findall in List<T>在 List<T> 中查找
【发布时间】:2010-07-08 09:24:16
【问题描述】:

我在我的列表中找不到任何 FindAll 方法,我如何从列表中选择响应特定条件的对象,而不使用旧的迭代方法?

List<oPage> mylist = new List<oPage>();

我的 oPage 类有一个名为 Title 的字符串类型的属性。

我在 myList 中添加了几项 oPage。

现在我想选择 mylist 中标题包含单词“abc”的所有项目,并在 IEnumerable 中返回所有这些项目。

这怎么可能?

感谢您的帮助。

【问题讨论】:

  • 用什么编程语言?
  • 您使用的是哪个版本的 .Net 框架?

标签: c# .net list ienumerable


【解决方案1】:

如果您使用的是 .NET 3.5 或更高版本,则可以使用 LINQ 来做到这一点

mylist.Where(p => p.Title.Contains("abc"));

【讨论】:

    【解决方案2】:

    FindAll 方法返回 List,但您可以将结果转换为 IEnumerable&lt;oPage&gt;

    List<oPage> mylist = GetYourList();
    
    IEnumerable<oPage> results = (IEnumerable<oPage>)myList.FindAll(
       delegate(oPage p)
       {
          return p.Title.Contains("abc");
       }
    );
    

    【讨论】:

    • 是的,没错。如果您使用的是 C# 3.0+,请使用 lambda 表达式而不是匿名委托。
    猜你喜欢
    • 2011-11-30
    • 2012-05-26
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    相关资源
    最近更新 更多