我有一个模型:
public class MyModel
{
public int GridX { get; set; }
public int GridY { get; set; }
}
用户将从excel工作表中上传一个列表,该列表如下所示:
GridX GridY
1 3
1 2
1 4
2 2
2 1
2 1
我当前上传excel工作表,并遍历各行以创建一个列表,然后将其保存到数据库。
我必须能够捕获重复的行,例如具有相同坐标(2,1)的最后两行。
我知道对于一个列表,我可以执行以下操作:
var hasDuplicates = MyList.GroupBy(x => x.num).Any(x => x.Count() > 1);
如果列表中有重复项,则hasDuplicate为true。如果有需要比较的配对,我不确定该怎么做。每组坐标应为一个组,但不确定如何对一组坐标进行分组。我可以在sql中完成此操作,但是可惜我必须先将其捕获到db中。
方法如下-您可以通过在中创建匿名类型来对这两个属性进行分组GroupBy
:
MyList.GroupBy(x => new { GridX = x.GridX, GridY = x.GridY }).Any(x => x.Count() > 1);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句