如何仅使用 linq 按一列分组?

how to group by one column only using linq?

我正在使用 Linq 查询对一列(电话串)和 return 该列以及名为 Status 的第二列的最后一个值(也是一串数字)进行分组。我想将这个查询的结果添加到一个新的数据表中。

我试过很多方法,但结果总是一组两列在一起,而不是只有一列。如果我从数据表中删除字段状态,则该组工作正常,但我需要它。示例:

phone状态

123 ---------- 1

123 ---------- 2

我想检索结果:123, 2 但我得到了两行。 知道为什么会发生这样的事情吗?这是代码:

var queryGroupLog =
from log2 in lg2.AsEnumerable()
group log2 by log2.Field<string>("Phone") into groupPhone
select groupPhone.OrderBy(p => p.Field<string>("Status")).LastOrDefault();
new KeyValuePair(groupPhone.Key,groupPhone.OrderBy((p) => p.Field("Status")).LastOrDefault()))

您可以尝试这样的操作:

var queryGroupLog = from log2 in lg2.AsEnumerable()
                    group log2 by log2.Field<string>("Phone") into groupPhone
                    select new 
                    {
                        Phone = groupPhone.Key,
                        Status = groupPhone.OrderBy(p => p.Field<string>("Status"))
                                           .LastOrDefault()
                    };