C# 使用Linq(?)从列表中的列表获取属性
我需要帮助从列表“Feed”中选择所有标题,该列表位于列表“Feed”中,其中Feed.Name与组合框中的字符串匹配 下面是我的尝试,虽然没有成功,但可能走错了路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
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();