gpt4 book ai didi

c# - 使用 LINQ 将表中的逗号分隔字符串转换为不同的值集合

转载 作者:太空宇宙 更新时间:2023-11-03 19:27:46 26 4
gpt4 key购买 nike

我正在处理这个 MVC3 tutorial并以逗号分隔的字符串形式进入电影类型。

在第 6 部分中,我们从表格中提取流派来填充下拉列表。

我想用不同的单一流派集合填充下拉列表,但我无法让它工作。

这是教程建议的起点

var GenreLst = new List<string>();

var GenreQry = from d in db.Movies
orderby d.Genre
select d.Genre;
GenreLst.AddRange(GenreQry.Distinct());

...这就是我要去的地方

var GenreLst = new List<string>();

var GenreQry = (from d in db.Movies
orderby d.Genre
select d.Genre ).Select(s=>s.Split(','))
.Distinct();

GenreLst.AddRange( GenreQry );

最佳答案

Linq2Sql 不知道 s.Split(',') 方法,所以它应该抛出异常,你可以这样做:

var GenreQry = (from d in db.Movies
orderby d.Genre
select d.Genre ).Distinct().ToList();

GenreLst.AddRange( GenreQry.SelectMany(x=>x.Split(',')).Distinct());

关于上面的代码:在查询结束时调用 ToList() 时,将获取您的数据,而您的查询实际上是列表,在第二部分,SelectMany 将分隔的字符串作为 IEnumberable 字符串。

编辑: 同样在第一部分中,您可以调用 .AsEnumerable() 而不是 .ToList() 来获取数据,这似乎更好方式。

关于c# - 使用 LINQ 将表中的逗号分隔字符串转换为不同的值集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7319983/

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