C# 有没有办法生成一个包含从列表中获得的所有属性的类<;字符串>;?

C# 有没有办法生成一个包含从列表中获得的所有属性的类<;字符串>;?,c#,C#,我有一个列表对象。在代码中,我想声明一个新类,其动态生成的属性都是从List对象获得的。我有办法做到这一点吗 例如:我有一个列表lstStr=“苹果、梨、香蕉”我想在代码中生成一个新类: Class Foo{ string apple; string pear; string banana; } 我将使用另一个集合,例如: 字典Foo=lstStr .Distinct() .ToDictionary(f=>f,f=>default(字符串)); //现在,您可以通过以下方式获

我有一个列表对象。在代码中,我想声明一个新类,其动态生成的属性都是从List对象获得的。我有办法做到这一点吗

例如:我有一个
列表lstStr=“苹果、梨、香蕉”我想在代码中生成一个新类:

Class Foo{
   string apple;
   string pear;
   string banana;
}

我将使用另一个集合,例如:

字典Foo=lstStr
.Distinct()
.ToDictionary(f=>f,f=>default(字符串));
//现在,您可以通过以下方式获取/设置元素:
字符串banana=Foo[“banana”];
Foo[“苹果”]=“一些苹果”;

如果您真的需要一个类,那么这可能是您可以使用codedom做的事情-将字符串解析为类定义字符串并从中生成,或者使用字符串列表在循环时创建属性

这里有一个基本指南。

如果您使用的是c#4或更高版本,您可以使用dynamics,特别是ExpandoObject来实现这一点

    var x = new ExpandoObject() as IDictionary<string, Object>;
foreach (var prop in lstStr)
{
     x.Add(prop, "");
}
var x=newexpandoobject()作为IDictionary;
foreach(lstStr中的var prop)
{
x、 加上(道具“”);
}
您可以使用

public static List<Foo> GetFooList() { .... }
链接:

既然您在评论中说您的最终目标是将数据绑定到
数据网格
,我建议您使用
数据表
。您可以创建一个空白列表,添加列(任何基元类型),然后使用相同的列模式填充任意数量的行。此外,您可以轻松地将
数据表
绑定到
数据网格
;它们是为了协同工作而设计的。

您打算如何使用您创建的对象?我将创建一组对象以放入列表并绑定到数据网格以供显示。
public static List<Foo> GetFooList() { .... }
public class FooList:List<Foo> { .... //add more } 
public static FooList GetFooList() { .... }