gpt4 book ai didi

c# - 如何在具有一个不同值的列表中查找相同的类

转载 作者:行者123 更新时间:2023-11-30 14:22:23 25 4
gpt4 key购买 nike

我有一个权限列表。一个权限类有四个属性:Type、AccessType、Value 和 Action。如果存在类型、访问类型和值相同但操作不同的多个权限,我想抛出异常。

例如,p1 和 p2 的列表会抛出异常:

Privilege p1 = new Privilege{Type = "a", AccessType = "a", Value = "a", Action = "a"};
Privilege p2 = new Privilege{Type = "a", AccessType = "a", Value = "a", Action = "b"};

我想使用 LINQ,但不确定如何使用。

最佳答案

所以你想允许重复的类型+访问类型+值,但前提是操作也相同?

bool throwException = pList
.GroupBy(x => new { x.Type, x.AccessType, x.Value })
.Any(g => g.Select(p => p.Action).Distinct().Count() > 1);

首先,我正在构建这三个属性的组。然后我检查这些组中是否有任何一个包含多个 Action 。然后你可以抛出异常。

一个小的优化可能是(如果重复列表很大)如果你替换

Distinct().Count() > 1

Distinct().Skip(1).Any()

关于c# - 如何在具有一个不同值的列表中查找相同的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49895703/

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