来自ilist的c#列名称

时间:2011-02-18 15:38:47

标签: c# .net list

这可能非常简单。我创建了一个带有列表的类

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;

    }

我可以在运行时插入和读取列表的内容。 我还想在运行时获取列名。这可能吗?感谢。

3 个答案:

答案 0 :(得分:0)

如果要检索字段的名称,则应使用反射。

答案 1 :(得分:0)

你有一个变量的“列表”,但真正的列表看起来像这样:

public List<string> _someStringList = new List<string>;

要获得包含列名等名称的列表,您可以使用字典:

public Dictionary<string, string> _someDict = new Dictionary<string, string>

要获取课程名称,您可以使用这样的反射:

foreach (PropertyInfo pi in typeof(lstLog).GetProperties())
  Console.WriteLine("A property with name: " pi.Name);

答案 2 :(得分:0)

您应该使用字典,以便按名称查询列,并根据需要添加/插入新列。

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;
    }
}