gpt4 book ai didi

c# - 如何将 LINQ 结果绑定(bind)到数据网格

转载 作者:行者123 更新时间:2023-11-30 21:06:01 25 4
gpt4 key购买 nike

我将 linq 结果数据绑定(bind)到数据网格,但什么也没有。这是我的代码

        List<SearchResult> list = new List<SearchResult>() {
new SearchResult(){ID=1,Title="Geo Prism 1995 GEO* - ABS #16213899"},
new SearchResult(){ID=2,Title="Excavator JCB - ECU P/N: 728/35700"},
new SearchResult(){ID=3,Title="Geo Prism GEO 1995 - ABS #16213899"},
new SearchResult(){ID=4,Title="JCB Excavator JCB- ECU P/N: 728/35700"},
new SearchResult(){ID=5,Title="Geo Prism GEO,GEO 1995 - ABS #16213899 GEO"},
new SearchResult(){ID=6,Title="dog"},
};

var to_search = new[] { "Geo", "JCB" }.Select(x => x.ToLower()).ToArray();
var result = from searchResult in list
let title = searchResult.Title.ToLower()
let key_string = to_search.FirstOrDefault(ts => title.Contains(ts))
orderby key_string == null ? -1 : title.Split(new[] { key_string }, StringSplitOptions.None).Length descending
group searchResult by key_string into Group
orderby Group.Count() descending
select Group;

dataGridView2.DataSource = result;

当我运行上面的代码时,datagrid 什么也没显示,但我期望 datagrid 应该显示ID 和标题

然后我再添加一些行

List<SearchResult> listFinal = new List<SearchResult>();
foreach (var group in result)
{
foreach (var item in group)
{
listFinal.Add(new SearchResult() { ID = item.ID, Title = item.Title });
}
}
dataGridView2.DataSource = listFinal;

现在数据网格正在显示数据。所以我的问题是......是否有任何快捷方式将结果转换为列表,因此我可以使用循环迭代将列表直接绑定(bind)到数据网格并创建一个新列表并在绑定(bind)之前填充它。寻求指导。谢谢

最佳答案

是的,只需调用 .SelectMany().ToList()在您的 LINQ 查询上。

dataGridView2.DataSource = result.SelectMany(e => e).ToList();

或使用 appropriate constructor 创建您的列表:

dataGridView2.DataSource = new List(result.SelectMany(e => e));

关于c# - 如何将 LINQ 结果绑定(bind)到数据网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11413705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com