gpt4 book ai didi

c# - 使用列表项内容作为字符串名称

转载 作者:行者123 更新时间:2023-11-30 14:09:16 24 4
gpt4 key购买 nike

我正在使用 C# 并根据 sqlite 查询响应制作列表。

List1 包含一个与list2 中的字段同名的字段

List1[i].field = fieldname

我想使用存储在 List1[i].field 中的字段名来访问 List2 中的项目,例如:

List2[ii].+List1[i].field+

我不知道在 C# 中是否可以通过这种方式实现这一点,我对它还比较陌生,并且基本上脱离了我对 PHP 的了解,而这样的事情确实可行。

最佳答案

对于这种类型的数据结构,您通常使用字典(键/值对)来动态选择对象的属性。对于您的具体示例,这可以通过反射来完成,但它不是很常用,因为其他结构使它更容易。

List2[ii].GetType().GetProperty(List1[i].field).GetValue(List2[ii], null);

反射通常不是最快的解决方案类型,如果可以避免的话,落后并用大量反射维护代码通常不是很好。

或者,您可以使用 Linq 将 List2 从您的对象类型列表转移到字典对象列表中,这样您就可以执行类似 List2[ii][List1[i].field] 的操作完成同样的事情。

var listDictionaries = List2
.Select(l => new Dictionary<string, object>()
{
new { "Prop1", l.Prop1 },
new { "Prop2", l.Prop2 },
new { "Prop3", l.Prop3 },
}).ToArray();
listDictionaries[ii][List1[i].field];

关于c# - 使用列表项内容作为字符串名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30180482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com