C# 如何使用LINQ获取强类型单值
我正在使用LINQ与C.NET程序中数据集中的数据交互。数据从一个XML文件导入到数据集中,因此它从中获取其模式。我希望能够从表中获取一行,然后使用IntelliSense以强类型方式访问该行的特定列。我想我已经接近语法了,但我还是不太明白。这是我到目前为止所拥有的C# 如何使用LINQ获取强类型单值,c#,xml,linq,dataset,C#,Xml,Linq,Dataset,我正在使用LINQ与C.NET程序中数据集中的数据交互。数据从一个XML文件导入到数据集中,因此它从中获取其模式。我希望能够从表中获取一行,然后使用IntelliSense以强类型方式访问该行的特定列。我想我已经接近语法了,但我还是不太明白。这是我到目前为止所拥有的 // RunnerDataTable contains columns named FirstName, LastName, etc. var OneRunner = RunnerDataTable().Single( p =
// RunnerDataTable contains columns named FirstName, LastName, etc.
var OneRunner = RunnerDataTable().Single( p => p.Field<string>("FirstName") == "Jordan");
MessageBox.Show(OneRunner.LastName); // This doesn't work
这个例子确实有效,但我想在没有foreach循环的情况下使用它
var SomeRunners= from f in RunnerDataTable.AsEnumerable()
where f.Field<string>("FirstName") == "Jordan"
select new { FirstName = f.Field<string>("FirstName"), LastName = f.Field<string>("LastName")};
foreach (var o in SomeRunners)
{
MessageBox.Show(o.FirstName + " " + o.LastName);
}
有什么想法吗
var OneRunner = (from f in RunnerDataTable.AsEnumerable()
where f.Field<string>("FirstName") == "Jordan"
select new { FirstName = f.Field<string>("FirstName"),
LastName = f.Field<string>("LastName")}
).SingleOrDefault();
用括号括起来并添加SingleOrDefault如果我没有弄错您的问题,那么:
var OneRunner = (
from f in RunnerDataTable.AsEnumerable()
where f.Field<string>("FirstName") == "Jordan"
select new
{
FirstName = f.Field<string>("FirstName"),
LastName = f.Field<string>("LastName")
}
).Single();