[英]c# columns names from ilist
這可能真的很簡單。 我創建了一個帶有列表的課程
public class lstLog
{
public String column1;
public String column2;
public String column3;
public String column4;
// Methods
public lstLog(String column1, String column2, String column3, String column4)
{
this.column1 = column1;
this.column2 = column2;
this.column3 = column3;
this.column4 = column4;
}
我可以在運行時插入和讀取列表的內容。 我還想在運行時獲取列名。 這可能嗎? 謝謝。
如果要檢索字段的名稱,則應使用反射。
您有一個變量“列表”,但實際列表如下所示:
public List<string> _someStringList = new List<string>;
要獲得帶有列名之類的列表,可以使用字典:
public Dictionary<string, string> _someDict = new Dictionary<string, string>
要獲取類的名稱,您可以像下面這樣使用Reflection:
foreach (PropertyInfo pi in typeof(lstLog).GetProperties())
Console.WriteLine("A property with name: " pi.Name);
您應該使用字典,以便可以按名稱查詢列並根據需要添加/插入新列。
public class LstLog
{
private Dictionary<string, string> columnDictionary = new Dictionary<string, string>();
// Methods
public LstLog(String column1, String column2, String column3, String column4)
{
columnDictionary["column1"] = column1;
columnDictionary["column2"] = column1;
columnDictionary["column3"] = column1;
columnDictionary["column4"] = column1;
}
public string GetColumnValue(string columnName)
{
if(columnDictionary.ContainsKey(columnName)
return columnDictionary[columnName];
else
return null;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.