C# 转换IEnumerable<;对象>;到匿名类型
我想转换一个C# 转换IEnumerable<;对象>;到匿名类型,c#,linq,anonymous-types,C#,Linq,Anonymous Types,我想转换一个IEnumerable,定义如下: public class NameVal { public string Name { get; set; } public string Content { get; set; } } IEnumerable<NameVal> contents = new List<NameVal>() { new NameVal { Name = "title", Content = "My new pos
IEnumerable
,定义如下:
public class NameVal
{
public string Name { get; set; }
public string Content { get; set; }
}
IEnumerable<NameVal> contents = new List<NameVal>()
{
new NameVal { Name = "title", Content = "My new post" },
new NameVal { Name = "body", Content = "This is my first post!" }
};
有人知道怎么做吗?谢谢。非常简单。试试这个
var data = contents.Select(x => new
{
title = x.Name,
body = x.Content
});
我能想到的唯一方法是使用
expandooobject
和动态
:
var x = new ExpandoObject() as IDictionary<string, object>;
foreach (NameVal nameVal in contents) {
x.Add(nameVal.Name, nameVal.Content);
}
dynamic d = x;
Console.WriteLine(d.title);
Console.WriteLine(d.body);
var x=newexpandoobject()作为IDictionary;
foreach(目录中的NameVal NameVal){
x、 添加(nameVal.Name,nameVal.Content);
}
动态d=x;
控制台。书写线(d.标题);
控制台写入线(d.body);
您可以使用字符串字典,字符串?这将给出错误的输出。。。您将得到2个项目而不是1个,并且只有第二个项目的body
属性具有正确的值。
var x = new ExpandoObject() as IDictionary<string, object>;
foreach (NameVal nameVal in contents) {
x.Add(nameVal.Name, nameVal.Content);
}
dynamic d = x;
Console.WriteLine(d.title);
Console.WriteLine(d.body);