检查datarowview.row.itemarray中的不同值,而不是空字符串

本文关键字:字符串 itemarray row 检查 datarowview | 更新日期: 2023-09-27 18:04:51

我通过以下代码获得datarowview

DataRowView s = grdSampleData.GetRow(grdSampleData.FocusedRowHandle) as DataRowView;

我如何在这里检查s.r row . itemarray中的所有值是不同的。如果value为null或空字符串,它应该跳过不同的性质,即ItemArray中可以有多个空值或空字符串,但没有其他相同的值

检查datarowview.row.itemarray中的不同值,而不是空字符串

您可以使用LINQ GroupBy来检查不同:

 bool flag = s.row.ItemArray.Where(x => x != null)
            .Where(x => (x is string) && !string.IsNullOrEmpty((string) x))
            .GroupBy(x => x).Any(g => g.Count() > 1);

工作原理:

为了简化,假设你的项目数组有:[1,1,3,3]。GroupBy(x => x)将把你的数组分成两组:

[ [1, 1], [3, 3] ]

要知道是否不同,只需检查是否有任何组具有Count> 1,如果是,则不不同。这里的例子是不明显的