如何在运行时为LINQ中的列名设置别名?

时间:2013-12-23 12:40:11

标签: c# linq

我有一个对象列表:

List<MyClass> list = new List<MyClass>();

这是我的查询

var q = from o in list
      select new
      {
        column1 = o.X
      };

这有效,但我想在运行时设置column1,如下所示:

string column1 = "myColumnName";
var q = from o in list
    select new
    {
       column1 = o.X 
    };

我该怎么做?

1 个答案:

答案 0 :(得分:1)

正如我从你的评论中理解的那样,你不需要在运行时为列添加别名,你需要这样的东西

string columnName = "myColumnName";
var q = from o in list
        select new KeyValuePair<string,string>(columnName,o.X);

并将此绑定到像这样的组合框

comboBox.DisplayMember = "Key";
comboBox.ValueMember = "Value";
comboBox.DataSource = q;
comboBox.DataBind();