需求:
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;
}