[英]Retrieving Anonymous Object's Property in C#
我有以下代碼
using System;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
List<object> list = new List<object>();
list.Add(new {
Value = 0
});
//Console.WriteLine(list[0].Value);
}
}
有沒有一種簡單的方法來編寫注釋的代碼行而不會導致編譯時錯誤? 我知道我可以求助於使用dynamic關鍵字或為使用Reflection的Object類實現擴展方法,但是也許還有另一種更可接受的方法嗎?
目標是避免創建類,因為它的唯一目的是存儲數據。 但與此同時,稍后仍可以在程序中檢索數據。 這段代碼最終將以Web方法結尾,這就是為什么我首先希望它是動態的/匿名的。 所有對象最終將具有相同的屬性,因為它們將存儲存儲在表中的值,但是稍后需要這些值進行其他計算。
有沒有一種簡單的方法來編寫注釋的代碼行而不會導致編譯時錯誤?
與聲明列表的方式不同。 如果您的列表僅包含該匿名類型的對象,則可以使用數組初始化器,並將其轉換為List<{anonymous type}>
:
var list = (new [] {
new { Value = 0 }
}).ToList();
Console.WriteLine(list[0].Value);
令人高興的是,您可以輕松地將其添加到列表中,因為具有相同屬性的匿名類型將由編譯器合並為一種類型:
list.Add(new {Value = 1});
根據Servy的評論,避免數組創建的方法將是:
public static List<T> CreateList<T>(params T[] items)
{
return new List<T>(items);
}
用法:
var list = CreateList(new { Value = 0 });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.