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

时间:2011-06-15 15:41:49

标签: linq list c#-4.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() 
            });
    }
}

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

将您的if语句更改为

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

我可以建议使用这样的语法

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

答案 2 :(得分: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()
    });
}