如何解决C#中的动态结构
每一行都有列:一些是字符串列,一些是列表。
列数及其类型每次运行都会发生变化,因为这取决于作为参数发送给程序的文件。
如何创建这样的结构?
谢谢
解决方法
ExpandoObject 表示一个对象,其成员可以在运行时动态添加和删除。而 dynamic 关键字用于声明应该后期绑定的变量。这将是两个组成部分。
这是一个展示基本机制的例子:
dynamic user = new System.Dynamic.ExpandoObject();
user.Name = "John Doe";
user.Age = 42;
user.Cars = new List<string>() {"Ferrari","Porsche"};
foreach (KeyValuePair<string,object> kvp in user)
{
if (kvp.Key == "Cars") {
Console.WriteLine($"I have {((List<string>)kvp.Value).Count} {kvp.Key}");
} else {
Console.WriteLine(kvp.Key + ": " + kvp.Value);
}
}
// Dynamic Add
user.Address = "3 Frozen Land";
foreach (KeyValuePair<string,object> kvp in user)
{
if (kvp.Key == "Cars") {
Console.WriteLine($"I have {((List<string>)kvp.Value).Count} {kvp.Key}");
} else {
Console.WriteLine(kvp.Key + ": " + kvp.Value);
}
}
// Dynamic Remove
var dict = (IDictionary<string,object>)user;
dict.Remove("Age");
foreach (KeyValuePair<string,object> kvp in user)
{
if (kvp.Key == "Cars") {
Console.WriteLine($"I have {((List<string>)kvp.Value).Count} {kvp.Key}");
} else {
Console.WriteLine(kvp.Key + ": " + kvp.Value);
}
}
这将产生以下结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。