繁体   English   中英

使用 dt.AsEnumerable() 中的 DataRow dRow 在 C# .NET 中创建一个不同的有序列表

[英]Using from DataRow dRow in dt.AsEnumerable() to create a distinct ordered list in C# .NET

我有以下代码,但在如何维护订单方面存在问题:

var cars = (from DataRow dRow in dt.AsEnumerable()
                            select new
                            {
                                Car = dRow["Car"],
                                CarId = dRow["CarId"],
                                CarOrder = dRow["CarOrder"]
                            }).Distinct();

distinct 效果很好,但我需要保留从 1 到 X(升序)的 CarOrder。

DataTable dt 将它们全部按正确顺序排列,但是当它遇到这个不同的代码时,顺序不会被保留。

我试图弄清楚如何使用 OrderBy 子句。

根据文档

它返回源中唯一项的无序序列

这意味着订单不会得到保留。 所以你可以做的可能是Distinct() OrderBy()如下:

var cars = (from DataRow dRow in dt.AsEnumerable()
            select new
            {
                Car = dRow["Car"],
                CarId = dRow["CarId"],
                CarOrder = dRow["CarOrder"]
            }).Distinct().OrderBy(x => x.CarOrder);

请参阅: Distinct() 方法是否保持序列的原始顺序不变?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM