C# 如何使用LINQ获取强类型单值

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 =

我正在使用LINQ与C.NET程序中数据集中的数据交互。数据从一个XML文件导入到数据集中,因此它从中获取其模式。我希望能够从表中获取一行,然后使用IntelliSense以强类型方式访问该行的特定列。我想我已经接近语法了,但我还是不太明白。这是我到目前为止所拥有的

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