2011-06-15 58 views
0
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中的列。我如何使用linq來做到這一點?

+3

8個問題,0認同的答案?你能解決這個問題嗎? – Yuck 2011-06-15 15:43:31

+0

我是新來的,你怎麼做? – Geek 2011-06-15 15:45:25

回答

1

更改,如果statment到

!avlcols.Contains(x => x.ColName.ToLower() == row["field_name"].ToString().ToLower())) 

我還建議使用如下語法而不是

!avlcols.Contains(x => String.Equals(x.ColName, row["field_name"].ToString(), OrdinalIgnoreCase)) 
1

avlCols.Contains代替avlCols.Exists,你就在那裏。

0
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() 
    }); 
}