C# 使用Linq(?)从列表中的列表获取属性

C# 使用Linq(?)从列表中的列表获取属性,c#,linq,list,select,lambda,C#,Linq,List,Select,Lambda,我需要帮助从列表“Feed”中选择所有标题,该列表位于列表“Feed”中,其中Feed.Name与组合框中的字符串匹配 下面是我的尝试,虽然没有成功,但可能走错了路 var loadFeedData = fillFeed.GetAllFeeds(); var filteredOrders = loadFeedData.SelectMany(x => x.Items) .Select(y => y.Ti

我需要帮助从列表“Feed”中选择所有标题,该列表位于列表“Feed”中,其中Feed.Name与组合框中的字符串匹配

下面是我的尝试,虽然没有成功,但可能走错了路

 var loadFeedData = fillFeed.GetAllFeeds();
            var filteredOrders =
            loadFeedData.SelectMany(x => x.Items)
                 .Select(y => y.Title)
                 .Where(z => z.Contains(flow)).ToList();
为了更好地理解,我也将发布Feed.cs代码

public class Feed : IEntity
{
    public string Url { get; set; }
    public Guid Id { get; set; }
    public string Category { get; set; }
    public string Namn { get; set; }
    public string UppdateInterval { get; set; }       
    public List<FeedItem> Items { get; set; }
}

-发布整个代码以清除一些???

如果我理解正确,您希望使用此代码:

var filteredOrders = loadFeedData.Where(x => x.Name == flow)
                                 .SelectMany(x => x.Items)
                                 .Select(x => x.Title).ToList();

这将为您提供所有Feed things中的所有FeedItem项,其中包含Feed.Name==flow。

仅根据您对问题的标题和描述,这应该可以:

loadFeedData
    .Where(f => f.Name == myStringFromComboBox)
    .SelectMany(f => f.Items)
    .Select(fi => fi.Title);

我相信您正在寻找:

List<string> titles = loadFeedData.Where(f => f.Name == "SomeName")
                    .SelectMany(f => f.Items.Select(subItem => subItem.Title))
                    .ToList();
List titles=loadFeedData.Where(f=>f.Name==“SomeName”)
.SelectMany(f=>f.Items.Select(subItem=>subItem.Title))
.ToList();
  • 首先,您将根据名称筛选主列表
    loadFeedData
  • 然后从
    列表
  • 稍后,使用
    SelectMany
    返回
    IEnumerable
  • 可选,调用
    ToList
    返回
    列表

了解
FeedItem
@cslecours的定义会很有用不,标题的一个属性还不够吗?什么是
flow
,为什么要检查标题是否包含
flow
?为什么不成功?@Vladimirs,我不想对Title属性做任何假设。我猜他正在尝试选择Titles。是的,让我们假设FeedItem也有一个“Title”字段:)@Christian确实有。
List<string> titles = loadFeedData.Where(f => f.Name == "SomeName")
                    .SelectMany(f => f.Items.Select(subItem => subItem.Title))
                    .ToList();