Dan*_*der 3 c# linq lambda select list
我需要帮助从列表"Feed"中的列表"FeedItem"中选择所有标题,其中Feed.Name与组合框中的字符串匹配.
以下是我的尝试,这是不成功的,可能是在错误的道路上.
var loadFeedData = fillFeed.GetAllFeeds();
var filteredOrders =
loadFeedData.SelectMany(x => x.Items)
.Select(y => y.Title)
.Where(z => z.Contains(flow)).ToList();
Run Code Online (Sandbox Code Playgroud)
为了更好地理解事物,我也会发布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; }
}
Run Code Online (Sandbox Code Playgroud)
这是我正在努力工作的整个代码,根据我选择的Feed.Name的Listview名称填充带有标题的ListView.
private void listFlow_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
listInfo.Items.Clear();
listEpisode.Items.Clear();
if (listFlow.SelectedItem != null)
{
string flow = listFlow.SelectedItem.ToString();
var loadFeedData = fillFeed.GetAllFeeds();
var filteredOrders = loadFeedData
.Where(f => f.Name == myStringFromComboBox)
.SelectMany(f => f.Items)
.Select(fi => fi.Title);
listEpisode.Items.Add(filteredOrders);
}
}
Run Code Online (Sandbox Code Playgroud)
- 发布整个代码清除一些??
完全按照您的标题和问题描述,这应该工作:
loadFeedData
.Where(f => f.Name == myStringFromComboBox)
.SelectMany(f => f.Items)
.Select(fi => fi.Title);
Run Code Online (Sandbox Code Playgroud)
如果我理解正确的话,你想使用这个:
var filteredOrders = loadFeedData.Where(x => x.Name == flow)
.SelectMany(x => x.Items)
.Select(x => x.Title).ToList();
Run Code Online (Sandbox Code Playgroud)
这将为您提供所有 Feed 事物中的所有 FeedItem 项,其中 Feed.Name == flow。