已知情況:
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中使用變數作為欄位名稱,請教一下如何做到?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/237379.html
標籤:LINQ
