C# DataTable 动态列,判定DataTable中的某些列是否有重复的值
程序员文章站
2022-06-10 18:07:12
...
需求:
1、有一个动态列的DataTable,有两列固定,分别是key列,value列,其余列不固定。
2、判定这个DataTable里除了value列的其余列是否有重复的值。
思路:1、因为列不固定,但是value列固定,那就现将DataTable中value列去掉再进行判定。
public static class StringExtensions
{
/// <summary>
/// 根据datatable获得列名
/// </summary>
/// <param name="dt">表对象</param>
/// <returns>返回结果的数据列数组</returns>
public static string[] GetColumnsByDataTable(DataTable dt)
{
string[] strColumns = null;
if (dt.Columns.Count > 0)
{
int columnNum = 0;
columnNum = dt.Columns.Count;
strColumns = new string[columnNum];
for (int i = 0; i < dt.Columns.Count; i++)
{
strColumns[i] = dt.Columns[i].ColumnName;
}
}
return strColumns;
}
}
DataTable judgeTable = dt;
judgeTable.Columns.Remove("value");
if ((new DataView(dt)).Count != (new DataView(judgeTable)).ToTable(true, StringExtensions.GetColumnsByDataTable(judgeTable)).Rows.Count)
{
errorMessage = "其余列必须";
goto t1;
}