从 linq 中选择单个值
Posted
技术标签:
【中文标题】从 linq 中选择单个值【英文标题】:select single value from 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]
如何实现此代码以获取特定列的实际值?
【问题讨论】:
【参考方案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 和你。我选择你的答案是因为你的答案更好。非常感谢您节省了我的时间。以上是关于从 linq 中选择单个值的主要内容,如果未能解决你的问题,请参考以下文章