我需要帮助才能从List" FeedItem"中选择所有标题。这是List" 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; }
}
这是我尝试使用整个代码,使用标题填充ListView,基于Listview的名称和我选择的Feed.Name。
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);
}
}
- 发布整个代码以清除一些??
答案 0 :(得分:6)
完全按照你的标题和问题描述,这应该有效:
loadFeedData
.Where(f => f.Name == myStringFromComboBox)
.SelectMany(f => f.Items)
.Select(fi => fi.Title);
答案 1 :(得分:1)
我相信你在寻找:
List<string> titles = loadFeedData.Where(f => f.Name == "SomeName")
.SelectMany(f => f.Items.Select(subItem => subItem.Title))
.ToList();
loadFeedData
Title
List<FeedItem>
SelectMany
返回IEnumerable<string>
ToList
以获得List<string>
。答案 2 :(得分:0)
如果我理解正确,你想使用这个:
var filteredOrders = loadFeedData.Where(x => x.Name == flow)
.SelectMany(x => x.Items)
.Select(x => x.Title).ToList();
这将为您提供Feed.Name == flow所有Feed内的所有FeedItem项目。