簡體   English   中英

來自ilist的C#列名稱

[英]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.

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