在C#4.0中执行此操作的更好方法是什么?

时间:2011-06-09 19:47:57

标签: c# c#-4.0 foreach

foreach (DataRow row in dt.Rows ) 
        avlCols.Add(row.ItemArray[0].ToString().Trim());

3 个答案:

答案 0 :(得分:4)

该代码没有任何问题。

如果您正在寻找LINQ单线来解决问题,您可以尝试:

// I added ToList since it looks like your original used a list.
// If you only need IEnumerable, then you can leave off that call.
var avlCols = dt.AsEnumerable()
                .Select(r => r.Field<string>(0).Trim()).ToList();

或者(如果您只需要将这些项目添加到现有列表中):

avlCols.AddRange(dt.AsEnumerable()
                   .Select(r => r.Field<string>(0).Trim()));

对于这两个选项,您必须确保添加对System.Data.DataSetExtensions程序集的引用,并且可以访问System.Linq名称空间。

答案 1 :(得分:1)

一些建议:

  • 使用好的变量名称
  • 使用列名而不是索引
  • 使用LINQ

一个例子:

var names = from personRow in personTable.AsEnumerable()
            select personRow["name"].ToString().Trim();

答案 2 :(得分:0)

你可以逃脱:

var avlCols = from row in dt.Rows select row.ItemArray[0].ToString().Trim();