我需要一個表達式獲取集合的每個項目的類型。在運行時獲取列表的項目類型在c#
我有這樣一個集合:
var collection = new List<object>{1,2.2,"string",'c'};
有可能獲得集合的每一個項目的類型是這樣的:
var myVariable= collection.Select(item => item.GetType())
但我需要在運行時創建這個表達。 我必須動態創建類似myVariable
的東西,但怎麼做?!
調試器顯示我的myVariable
內部表達的價值是這樣的:
{System.Linq.Enumerable+WhereSelectListIterator`2[System.Object,System.Type]}
EDIT1
的問題說明: 假設我需要選擇一個對象的一個屬性。我的貓寫這樣的查詢:
var lst = new List<MyClass>
{
new MyClass {Name = "myName1", Value = 1},
new MyClass {Name = "myName2", Value = 2}
};
var oneProperty = lst.Select(item => new {SelectedProp=item.Name});
結果是匿名類型包含2個項目的清單:「myName1」 &「myName2」。 現在我想添加另一個屬性到結果列表,顯示所選屬性的類型。下面的代碼讓我這樣列表:
var oneProperty = lst.Select(item => new {SelectedProp=item.Name,TypeOfProp=item.GetType() });
的問題是建立在運行時這樣表達給予表達實體框架,它執行的表達。問題解決了嗎?
顯示我們的僞代碼你想達到的目標。 – dcastro
鑑於提出的解決方案不能解決您的問題,請澄清您正在努力實現的目標! – Georg
發佈編輯和問題解釋 – Merta