我如何使用linq来实现这一点?

我如何使用linq来实现这一点?,linq,list,c#-4.0,Linq,List,C# 4.0,仅添加avlcols中不存在的列。将avlcols.Exists替换为avlcols.Contains,您就在那里。将您的if语句更改为 foreach (DataRow row in dtcols.Rows) { if (!avlcols.Exists(x => x.ColName.ToLower() == row["field_name"].ToString().ToLower())) { avlcols.Add(new Column()

仅添加avlcols中不存在的列。

avlcols.Exists
替换为
avlcols.Contains
,您就在那里。

将您的if语句更改为

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.Contains(x => x.ColName.ToLower() == row["field_name"].ToString().ToLower()))
var rows=来自dtcols.Cast()中的行
哪里avlcols.Exists(x=>x.ColName.Equals(行[“field_name”].ToString(),StringComparison.OrdinalIgnoreCase))
选择行;
foreach(行中的变量行)
{
avlcols.Add(新列()
{
ColName=行[“字段名称”]。ToString(),
ColWidth=行[“字段宽度”]。ToString()
});
}

8个问题,0个接受答案?你能修好吗?我是新来的,你是怎么做到的?
!avlcols.Contains(x => String.Equals(x.ColName, row["field_name"].ToString(), OrdinalIgnoreCase))
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()
    });
}