【问题标题】:Find an object in a generic list with Find method使用 Find 方法在通用列表中查找对象
【发布时间】:2009-05-12 11:13:37
【问题描述】:
class Cache
{
    int sizeOfCache;//no of RssFeedDocument 
    private List<RssFeedDocument> listOfRssFeedDocument = null;
}

我想根据RssFeedDocument 的属性FeedId 在类中的这个通用列表中找到一个对象。

【问题讨论】:

    标签: asp.net find generics predicate


    【解决方案1】:

    使用匿名委托:

    Guid feedID = ...;
    RssFeedDocument document = listOfRssFeedDocuments.Find(
        delegate(RssFeedDocument rfd)
        { return rfd.FeedId == feedID; });
    

    相同,但使用 C# 3.0 lambda:

    Guid feedID = ...;
    RssFeedDocument document = 
        listOfRssFeedDocuments.Find(rfd => rfd.FeedId == feedID);
    

    【讨论】:

      【解决方案2】:

      假设你可以使用IEnumerable&lt;T&gt;扩展方法,我认为最简单的方法实际上是使用Where

      listOfRssFeedDocument.Where(doc => doc.FeedId == someId);
      

      【讨论】:

        【解决方案3】:
        List<RssFeedDocument> filteredList = listOfRssFeedDocument.Find(delegate(RssFeedDocument d) { return d.FeedId = x; });
        

        参考:List&lt;T&gt;.Find

        【讨论】:

          【解决方案4】:

          如果您不能使用 LINQ,您可以使用以下方式:

          RssFeedDocument fd = ListName.Find(delegate(RssFeedDocument doc) { return doc.FeedID == someVariable; });
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-07-29
            • 1970-01-01
            • 2017-07-20
            • 2020-08-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多