防止表单集合中的重复

时间:2018-05-20 16:23:00

标签: c# asp.net-mvc

我使用表单集合从控制器

中动态克隆的表单元素/值中检索值
string[] vi = collection["VoteInfoCatId"].Split(char.Parse(","));

vi可以具有1,2或3的值我想要创建一个条件,我可以检查以确保在所有情况下vi应始终具有这3个不同的值而没有任何重复 我这样做是为了

Where vi[0]!=vi[1] && vi[0]!=vi[2]  && vi[1]!=vi[2] 

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

这取决于你如何处理你的“有重复值”的情况,在任何一种情况下,LINQ都是你的朋友。

如果要检测重复项并对其执行操作,可以按字符串的唯一值进行分组,并查看是否有任何计数超过1.例如:

if (vi.GroupBy(m => m).Any(m => m.Count() != 1)) {
    // Has duplicates
}

如果您只想删除重复项,则可以执行以下操作:

var distinctVi = vi.Distinct();

作为旁注,您对char.Parse(string)的来电是多余的,您应该直接使用char。请注意,"(双引号)是string,而'(单引号)是char,因此以下内容可行:

var vi = collection["VoteInfoCatId"].Split(',');