请教:如何使用变量作为LINQ的select new出来的字段名称?
已知情况:
1、要处理的表有哪些列是未知的,所以不能把列名写死;
2、会将datatable的所有列放在combobox中,根据用户选择的列作出相应处理;
3、将处理好的结果放在新列,新列的列名是原选择修改的列名+“修改后”
所以不知如何实现以下效果:
例表一:
姓名 金额
张三 10
李四 15
例表二:
商品名 售价
风扇 60
冰箱 200
……还有很多完全不同的表作各种不同处理,比如对表一的金额统一加10,表二的售价统一乘0.8等等。
string 字段1=表二.columns[0].columnname;//或表一,或从界面取值,方法不定,总之是变量的意思
string 字段2=cbx目标列.SelectedItem.ToString();
string 字段3=字段2+"修改后";
var query = from p in dt.AsEnumerable()
select new
{
字段1 = p.Field<string>("商品名") + "abc", //"商品名"和"售价"不写成字段1、字段2是为了避免各位与左边的看混淆,
字段2 = p.Field<string>("售价"), //所以区分开写方便看清楚要表达的意思
字段3 = p.Field<string>("售价") * 0.8
};
//其它代码略
以上只是示例,与实际作用无关。总之目标就是在select new中使用变量作为字段名称,请教一下如何做到?