如何使用单列</string>中的Datarow值填充List <string>

时间:2010-04-12 16:56:54

标签: c# datatable list foreach datarow

我还在学习(宝贝步骤)。熟悉一个函数,并希望找到一种更整洁的方式来处理我的数据表。

对于程序生命周期中更常用的表,我将它们转储到datatables并查询它们。我希望做的是查询数据表中的列x =“this”,并将列“y”的值直接转换为List以返回给调用者:

    private List<string> LookupColumnY(string hex)
    {
        List<string> stringlist = new List<string>();
        DataRow[] rows = tblDataTable.Select("Columnx = '" + hex + "'", "Columny ASC");
        foreach (DataRow row in rows) { stringlist.Add(row["Columny"].ToString()); } 
        return stringlist;
    }

任何人都知道一种稍微简单的方法吗?我想这很容易,但我想知道如果通过foreach循环迭代不会影响性能,我是否做了足够的这些。 TIA!

1 个答案:

答案 0 :(得分:4)

您可以使用LINQ简化此操作:

public IEnumerable<string> LookupColumnY(string hex)
{
     return tblDataTable
                .Select("Columnx = '" + hex + "'", "Columny ASC")
                .Select(row => row["Columny"].ToString() );
}

如果您需要返回列表,可以添加ToList()

public IList<string> LookupColumnY(string hex)
{
     return tblDataTable
                .Select("Columnx = '" + hex + "'", "Columny ASC")
                .Select(row => row["Columny"].ToString() )
                .ToList();
}

但是,这仍然会迭代选择中的每一行。