2

我还在学习(婴儿步骤)。弄乱一个函数,并希望找到一种更整洁的方法来处理我的数据表。

对于整个程序生命周期中更常用的表,我会将它们转储到数据表中并改为查询它们。我希望做的是查询数据表中的 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 循环进行迭代不会对性能造成影响,我是否做的足够多。蒂亚!

4

1 回答 1

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

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

于 2010-04-12T17:09:24.280 回答