有沒有辦法獲得linq中某個鍵的所有值?在linq中獲取某個屬性名稱的所有值?
下面是我收集
[PID,PNAME,EnviornementName]
所以我有這種類型的集合,尋找一個更通用的方法,在那裏我可以檢查屬性名稱並做一個選擇。喜歡的東西,
myCollection.SelectMany(項目=>項目)。凡(項目== propertyName的)
我怎麼能做到這一點?
有沒有辦法獲得linq中某個鍵的所有值?在linq中獲取某個屬性名稱的所有值?
下面是我收集
[PID,PNAME,EnviornementName]
所以我有這種類型的集合,尋找一個更通用的方法,在那裏我可以檢查屬性名稱並做一個選擇。喜歡的東西,
myCollection.SelectMany(項目=>項目)。凡(項目== propertyName的)
我怎麼能做到這一點?
要獲得named
屬性值嘗試
var pName = "PId";
var values = myCollection
.Select(x => x.GetType().GetProperty(pName).GetValue(x, null))
.ToArray();
using System.Linq;
MyCollection.Select(x => x.Pid).ToArray();
或獲得唯一值
MyCollection.Select(x => x.Pid).Distinct().ToArray();
或者更好的是,獨特的價值觀
MyCollection
.OrderBy(x => x.Pid)
.Select(x = x.Pid)
.Distinct()
.ToArray();
感謝您的回答數組,請找對問題的更新, –
有幾種方法可以做到這一點,例如有序數組:
var IDs = from o in myCollection
select new { o.PId };
或
var IDs = myCollection.Select(o => o.PId);
我建議你先從一些LINQ教程:http://www.tutorialspoint.com/linq/
感謝您的回答。尋找更通用的方法,在那裏我可以檢查屬性名稱並做一個選擇。就像,myCollection.SelectMany(item => item).Where(item == propertyName)我該怎麼做? –
這聽起來像你想要傳遞一個列名作爲參數給linq。在這種情況下,已經發布了回答的問題。 http://stackoverflow.com/questions/11963242/how-to-write-linq-query-with-column-name-as-parameter-still-in-a-type-safe-way –
謝謝。將着眼於它。 –
會試試這個。謝謝。 –
什麼是''d''? –
@EhsanSajjad,OOPS複製並粘貼錯誤。 –