c# - 在 LINQ 中为新匿名对象的属性使用动态 "string alias"?

标签 c# linq

<分区>

我有一个字符串变量,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
}

您可以将 ExpandoObjectdynamic API 结合使用,但即便如此,我仍不清楚这对您有何帮助...

关于c# - 在 LINQ 中为新匿名对象的属性使用动态 "string alias"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6633171/

相关文章:

c# - DateTime.Parse 今天(2012 年 3 月 1 日)失败! o_0

c# - 使用选择多个 C# 进行分组和求和?

c# - Linq 递归求和

c# - 使用 LINQ 按内部 Dictionary 值的值对 Dictionary<string,Dictionary<string,string>> 进行排序?

c# - 如果给定目录包含 ".exe",我将尝试返回 True 或 false

c# - log4net - 想要 .net 4.0 版本

c# - System.Net.HttpClient : SendAsync failed with OperationCanceledException without http request throught network

c# - 使用 LINQ to Entities 对多个级别的子集合进行排序

c# - 使用 C# 和 WPF 将数据从 SQLite 绑定(bind)到 DataGrid

javascript - 从 Xamarin C# 应用程序将图像上传到 Node JS 服务器上的 Multer