gpt4 book ai didi

c# - 如何将 ExpandoObject 的字典设置为不区分大小写?

转载 作者:太空狗 更新时间:2023-10-29 20:59:32 25 4
gpt4 key购买 nike

给出下面的代码

dynamic e = new ExpandoObject();
var d = e as IDictionary<string, object>;
for (int i = 0; i < rdr.FieldCount; i++)
d.Add(rdr.GetName(i), DBNull.Value.Equals(rdr[i]) ? null : rdr[i]);

有没有办法让它不区分大小写,所以给定字段名称 employee_name

e.Employee_name 和 e.employee_name 一样有效

似乎没有明显的方法,也许是 hack?

最佳答案

我一直在使用这个不区分大小写的“Flexpando”类(用于灵活的扩展)。

类似于Darin's MassiveExpando答案是它为您提供字典支持,但通过将其公开为一个字段,它可以避免为 IDictionary 实现 15 个左右的成员。

public class Flexpando : DynamicObject {
public Dictionary<string, object> Dictionary
= new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);

public override bool TrySetMember(SetMemberBinder binder, object value) {
Dictionary[binder.Name] = value;
return true;
}

public override bool TryGetMember(GetMemberBinder binder, out object result) {
return Dictionary.TryGetValue(binder.Name, out result);
}
}

关于c# - 如何将 ExpandoObject 的字典设置为不区分大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7760035/

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