<分区>
我有一个字符串变量,myFieldname。如何在 linq 表达式中使用它的值作为别名?
折叠
string myFieldname = "theName";
var q = (from d in data select new { d.Id, myFieldname = d.Amount });
我希望 theName
成为别名,而不是 myFieldname
本身。
<分区>
我有一个字符串变量,myFieldname。如何在 linq 表达式中使用它的值作为别名?
折叠
string myFieldname = "theName";
var q = (from d in data select new { d.Id, myFieldname = d.Amount });
我希望 theName
成为别名,而不是 myFieldname
本身。
最佳答案
你不能(至少,不能以任何理智的方式)。我能看到的唯一方法是使用 expando 对象,然后:
foreach(var pair in data select new { d.Id, d.Amount})
{
var obj = new ExpandoObject();
IDictionary<string, object> dict = obj;
dict[myFieldname] = obj.Amount;
dict["Id"] = d.Id;
// add obj to a list or similar
}
您可以将 ExpandoObject
与 dynamic
API 结合使用,但即便如此,我仍不清楚这对您有何帮助...
关于c# - 在 LINQ 中为新匿名对象的属性使用动态 "string alias"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6633171/