C# 如何在datatable中显示区分大小写的内容
我将一些来自xml的值放在datatable中,我有重复的值,还有一些值区分大小写 例:猫,大象,带,程序,一些,程序,猫,狗 所以我使用了一个条件,比如C# 如何在datatable中显示区分大小写的内容,c#,datatable,C#,Datatable,我将一些来自xml的值放在datatable中,我有重复的值,还有一些值区分大小写 例:猫,大象,带,程序,一些,程序,猫,狗 所以我使用了一个条件,比如 if (!(FindRow.Rows.Contains(val))) { FindRow.Rows.Add(val); } 我希望我的数据表既有Program又有Program,并且不应该有两个cat值,但它只需要一个Program,我可以看到至少两种方法: 准备HashSet并在每次将项添加到DataTable时将相同字符串的小写版
if (!(FindRow.Rows.Contains(val)))
{
FindRow.Rows.Add(val);
}
我希望我的数据表既有
Program
又有Program
,并且不应该有两个cat值,但它只需要一个Program,我可以看到至少两种方法:
准备HashSet
并在每次将项添加到DataTable
时将相同字符串的小写版本添加到集合中。然后,每次要添加新行时,都要检查表的另一侧的集合
var set = new HashSet<string>();
if (!(set.Contains(val.ToLower())))
{
FindRow.Rows.Add(val);
set.Add(val.ToLower());
}
var set=newhashset();
如果(!(set.Contains(val.ToLower()))
{
FindRow.Rows.Add(val);
set.Add(val.ToLower());
}
您可以使用LINQ执行稍微复杂一点的查询:
if (!(FindRow.Rows.AsEnumerable().Any(r => r.Field<string>("YourKeyColumnName").ToLower() == val.ToLower())))
{
FindRow.Rows.Add(val);
}
if(!(FindRow.Rows.AsEnumerable().Any(r=>r.Field(“YourKeyColumnName”).ToLower()==val.ToLower())
{
FindRow.Rows.Add(val);
}
您需要System.Data.DataSetExtensions.dll
在文件顶部使用System.Data.DataSetExtensions进行引用和汇编,以使其正常工作
DataTable本身是否规范了大小写?数据库可能取决于(查看排序规则配置),但DataTable?只需使用FindRow.CaseSensitive=true;