【问题标题】:How to populate List<string> with Datarow values from single columns如何使用来自单列的 Datarow 值填充 List<string>
【发布时间】:2010-04-12 16:56:53
【问题描述】:

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

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

【问题讨论】:

    标签: c# datatable list foreach datarow


    【解决方案1】:

    您可以使用 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();
    }
    

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

    【讨论】:

      猜你喜欢
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      • 2013-05-17
      • 2013-11-19
      相关资源
      最近更新 更多