【问题标题】:select single value from linq从 linq 中选择单个值
【发布时间】:2018-01-06 17:44:00
【问题描述】:

我有一个名为 dt 的数据表,它从数据库中填充。 SQL 命令是:

SELECT s.keyName,s.value FROM setting as s

填充 dataTable 后,我想从填充的 dt 中选择一个值。所以我尝试做一些我在这里展示的 linq:

if (dtSetting.Rows.Count > 0)
  {
      var r1 = (from r in dtSetting.AsEnumerable()
       where r.Field<string>("keyName") == "logoName"
       select r.Field<string>("value"));

       MessageBox.Show(r1.ToString());
  }

但我看不到 s.value 的值,而 r1.show 表示

system.data.enumerableRowCollection`1[system.String]

如何实现此代码以获取特定列的实际值?

【问题讨论】:

    标签: c# sql linq sql-server-2008


    【解决方案1】:

    你的 r1 是一个 IEnumerable。您应该从中选择一个项目。

    例子:

       MessageBox.Show(r1.First());
    

    【讨论】:

      【解决方案2】:

      r1 变量是 IEnumarable,因此您可以通过应用 index 来获取值。您也可以使用First()ElementAt()

       if (r1.Count() > 0)
          MessageBox.Show(r1.ToList()[0].ToString());
          //MessageBox.Show(r1.First());
          //MessageBox.Show(r1.ElementAt(0));
      

      【讨论】:

      • 您不能在 IEnumerable 上使用索引。首先将其转换为 List 会起作用。
      • ElementAt() 也可以
      • 谢谢@Carra 和你。我选择你的答案是因为你的答案更好。非常感谢您节省了我的时间。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多