![](/img/trans.png)
[英]Linq query to Check and get dictionary item from list of dictionary items
[英]Get first item in list from linq query
我希望得到第一條記錄,我意識到“Take()將不起作用。
所以我有一個查詢另一個列表的List
List<string> etchList = new List<string>();
etchList.Add("709");
Linq查詢是
var query = (from vio in AddPlas
where etchList.Any(vioID => vio.Key.Formatted.Equals(vioID))
select new
{
EtchVectors = vio.Shapes
}).ToList().Take(1);
現在這個“Take(1)”只有在etchList中有其他數據時才有效,所以它不是我想要的。 結果我看起來像這樣:
格式化
“clinesegs”1013.98 5142.96“LYR3_SIG2”
“clinesegs”1020.16 5168.33“LYR3_SIG2”
“clinesegs”967.03 5151.31“LYR3_SIG2”
“clinesegs”971.43 5174.01“LYR3_SIG2”
我希望只能回到列表中的第一行
"clinesegs" 1013.98 5142.96 "LYR3_SIG2"
編輯:
好這個代碼存在:
public class AddPla
{
public AddPla()
{
Shapes = new List<Parse>();
}
public Parse Key { get; set; }
public Parse Pla { get; set; }
public Parse Angle { get; set; }
public Parse Default { get; set; }
public List<Parse> Shapes { get; set; }
public Parse DoubleBrace { get; set; }
public Parse Number1 { get; set; }
public Parse Number2 { get; set; }
}
public class Parse
{
public string Formatted { get; set; }
public string Original { get; set; }
}
然后這個列表
var AddPlas = new List<AddPla>();
我不認為它和First()
一樣簡單?
如果您希望查詢不會返回任何結果,請使用FirstOrDefault()
更新
如果您要求的是“從每個AddPla
獲取第一個Shapes
”,則將First
添加到您的select
語句中,而不是在結尾處
select new { EtchVectors = vio.Shapes.First() }
您可以嘗試使用FirstOrDefault 。
var query = (from vio in AddPlas
where etchList.Any(vioID => vio.Key.Formatted.Equals(vioID))
select new
{
EtchVectors = vio.Shapes
}).FirstOrDefault();
使用FistOrDefault
方法安全地返回查詢中的第一項,如果查詢沒有返回結果,則返回null
:
var result =
(from vio in AddPlas
where etchList.Any(vioID => vio.Key.Formatted.Equals(vioID))
select new
{
EtchVectors = vio.Shapes.FistOrDefault()
})
或等效地:
var result = AddPlas.Where(x => etchList.Any(y => x.Key.Formatted.Equals(y)))
.Select(x => new { EtchVectors = x.Shapes.FistOrDefault() });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.