gpt4 book ai didi

c# - Linq group by 创建嵌套 ListView

转载 作者:行者123 更新时间:2023-11-30 17:59:42 27 4
gpt4 key购买 nike

我需要创建一个嵌套 ListView 并找到 a great article关于如何去做,但我的情况有点不同。我是 linq 新手,需要一点帮助:)

我需要将我的数据转换成与该文章中类似的格式才能工作(在上面的链接中,搜索“配置 ListView”并查看其正上方的表格)。

这是我的数据:

Format    Movie Name    Price
DVD Star Wars 12.99
DVD Star Wars II 13.99
Blue-Ray Star Wars 15.99
Blue-Ray Star Wars II 17.99

这是我所拥有的,并不是那么接近,但这是我所能得到的:

var MoviesToBuy = from Movie in dtMovieListDetails.AsEnumerable()
//join MovieDetails in dtMovieListDetails.AsEnumerable() on (string)Movie["ID"] equals (string)MovieDetails["ID"]
group Movie by new
{
Format = Movie["Format"],
Movies = Movie
} into grp

select new
{
Format = (string)grp.Key.Format,
Movies = grp.Key.Movies
};

MoviesToBuy = MoviesToBuy.OrderBy(p => p.Format);

lvwAmazonMovieGroup.DataSource = MoviesToBuy.ToList();
lvwAmazonMovieGroup.DataBind();

我有 3 个具体问题:

1.) 我所拥有的不起作用。由于组中的第二列等于所有行,因此不会创建实际的组。

2.) 尽管有先前的问题,我还是收到“数据源是无效类型。它必须是 IListSource、IEnumerable 或 IDataSource”错误。在本例中,电影列被创建为 DataRow 数据类型。不确定这是否是造成问题的原因。我能以某种方式转换到那个领域吗?

3.) 如何对电影中的字段进行排序。 IE。最后,我希望数据按格式排序,然后按电影名称排序,因此嵌套 ListView 如下所示:

Blue-Ray
Star Wars 12.99
Star Wars II 13.99

DVD
Star Wars 15.99
Star Wars II 17.99

不胜感激!

提前致谢,乍得

最佳答案

我想你可以从以下开始,调整适当的变量名称和 AsEnumerable() 等。

它按照您的需要对电影进行排序,并按照您的要求将它们放入嵌套结构中:

var moviesToBuy = from movie in dtMovieListDetails
orderby movie.Format, movie.Price
group movie by movie.Format into grp
select new
{
Format = grp.Key,
Movies = grp.Select (g => new { MovieName = g.MovieName, Price = g.Price })
};

Here's an example program that implements the above query.

关于c# - Linq group by 创建嵌套 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10906268/

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