gpt4 book ai didi

linq - 带 GroupBy 和 Min 和 Projection 的 IEnumerable 查询

转载 作者:行者123 更新时间:2023-12-02 00:09:57 25 4
gpt4 key购买 nike

我将这些数组按索引关联起来。所以对于每个索引(ObjId,ObjState)形成一对。

 string[] ObjIds = { "Obj1", "Obj1", "Obj2", "Obj2", "Obj1", "Obj3", "Obj2", "Obj2" };
string[] ObjStates = { "OS11", "OS12", "OS21", "OS22", "OS13", "OS31", "OS22", "OS23" };

但是我只想要每个 ObjId 的最新对(最接近索引 0)。

对于上述输入,输出将是

{  Obj1, OS11 }, {Obj2, OS21}, {Obj3, OS31}

如何使用 IEnumerable 查询执行此操作?我在弄清楚如何跟踪索引时遇到了麻烦。

最佳答案

你应该能够做到:

var items = ObjIds.Zip(ObjStates, (id, st) => new {Id = id, State = st})
.GroupBy(i => i.Id)
.Select(g => g.First());

Enumerable.Zip 在这里为您将项目“配对”成一个新的匿名类型,然后将项目分组,并从每组中选择第一个项目。

关于linq - 带 GroupBy 和 Min 和 Projection 的 IEnumerable 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15935528/

25 4 0