我如何使用linq做到这一点?

问题描述

|
foreach (DaTarow row in dtcols.Rows)
{
    if (!avlcols.Exists(x => x.ColName.ToLower() == row[\"field_name\"].ToString().ToLower()))
    {
        avlcols.Add(new Column() 
            {
                ColName=row[\"field_name\"].ToString(),ColWidth=row[\"field_width\"].ToString() 
            });
    }
}
添加avlcols中不存在的列。     

解决方法

        将您的if陈述改为
!avlcols.Contains(x => x.ColName.ToLower() == row[\"field_name\"].ToString().ToLower()))
我也可以建议改用这样的语法
!avlcols.Contains(x => String.Equals(x.ColName,row[\"field_name\"].ToString(),OrdinalIgnoreCase))
    ,        将
avlCols.Exists
替换为
avlCols.Contains
,您就在那儿。     ,        
var rows = from row in dtcols.Cast<DataRow>()
           where !avlcols.Exists(x => x.ColName.Equals(row[\"field_name\"].ToString(),StringComparison.OrdinalIgnoreCase))
           select row;
foreach(var row in rows)
{
    avlcols.Add(new Column()
    {
        ColName = row[\"field_name\"].ToString(),ColWidth = row[\"field_width\"].ToString()
    });
}
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...