簡體   English   中英

使用LINQ從對象列表中獲取一組特定的對象

[英]using LINQ to get a particular set of objects from a list of objects

我有一個返回一組對象的代碼。 我想從該集合中分離出一個特定的對象。 我正在嘗試使用LINQ來做到這一點。 但是我不明白

var registerAck = ((pointAck)((response.Item))).Items[0].Item;

var poke = ((pointAck)((response.Item))).Items.Where(x => x.GetType() == typeof(poker));

我戳到了System.Linq.Enumerable.WhereArrayIterator <>。

我在這里做錯了什么?

添加.ToList()將其轉換為System.Collections.Generic.List<TSource>的類型

var poke = ((pointAck)((response.Item))).Items
           .Where(x => x.GetType() == typeof(poker)).ToList();
  1. 可能需要也可能不需要添加.ToList ,因為這取決於您要使用poke 例如,如果只使用一次foreach遍歷結果,則.ToList是多余的,並且不必要的代碼執行和分配。

簡而言之,代碼可能沒有什么問題 ,具體取決於您希望進一步使用poke

  1. 僅供參考,您可以使用Where方法在此處進行特定過濾的替代方法.OfType

http://msdn.microsoft.com/en-us/library/vstudio/bb360913(v=vs.100).aspx

它將更加緊湊和可讀。 Items.OfType<poker>();

抱歉。 我忘了添加.ToList()。 有用。

var poke = ((pointAck)((response.Item))).Items.Where(x => x.GetType() == typeof(poker)).ToList();

暫無
暫無

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

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