簡體   English   中英

如何使用LINQ獲得強類型單值

[英]How do get a strongly typed single value using LINQ

我正在使用LINQ與C#.NET程序中的數據集中的數據進行交互。 數據從XML文件導入到數據集中,因此可以從中獲取其模式。 我希望能夠從表中獲取一行,然后以強類型的方式(使用智能感知)訪問該行的特定列。 我想我在語法上很接近,但我不太明白。 到目前為止,這就是我所擁有的...

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM