gpt4 book ai didi

c# - 二维集的 LINQ 新手问题

转载 作者:行者123 更新时间:2023-12-02 08:34:36 26 4
gpt4 key购买 nike

我有一个 LINQ 查询,可以使用整数提取 ID 值:

var data = from s in BaseData
select new { s.Roid, s.Tid};

? data.ToArray()
{<>f__AnonymousType0<int,int>[14]}
[0]: { Roid = 2384, Tid = 1 }
[1]: { Roid = 2384, Tid = 2 }
[2]: { Roid = 2384, Tid = 3 }
[3]: { Roid = 2385, Tid = 4 }
[4]: { Roid = 2385, Tid = 5 }
[5]: { Roid = 2385, Tid = 6 }
[6]: { Roid = 2386, Tid = 1 }
[7]: { Roid = 2386, Tid = 3 }
[8]: { Roid = 2386, Tid = 6 }
[9]: { Roid = 2386, Tid = 7 }
[10]: { Roid = 2387, Tid = 1 }
[11]: { Roid = 2387, Tid = 2 }
[12]: { Roid = 2387, Tid = 4 }
[13]: { Roid = 2387, Tid = 9 }

我想做的是查询 Roid 的结果集并仅提取 Tid 值。

所以我想查询 Roid = 2387 的数据,它将返回 1, 2, 4, 9,我想将其转换为数组。

这样的事情可能吗?

// ***Edit***
var items = data.ToArray().Where(s => s.RepairOrderId == 2387);
// gets me closer, but I still only want the Tid's
// ***Edit***

最佳答案

var tidsFromRoid = data.Where(x => x.Roid == 2387).Select(x => x.Tid);

这将返回一个仅包含 Roid == 2387 对的子序列,然后从该子序列中将每个元素投影到其 Tid 上。

请注意,如果您希望将其作为数组,请在以下位置调用 .ToArray():

var arrayOfTids = tidsFromRoid.ToArray();

如果您从一开始就想这样做(因为也许您永远不会关心其他 Roid),那么您可以进行原始查询:

var arrayOfTids = BaseData.Where(x => x.Roid == 2387).Select(x => x.Tid).ToArray();

关于c# - 二维集的 LINQ 新手问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7287527/

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