gpt4 book ai didi

c# - 如何通过代码泛化分析数据?

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:19 25 4
gpt4 key购买 nike

我有一个 XML 文件,其中包含要检查和验证的项目“脚本”。它所做的是读入要检查的值,如果该检查为真,它就会执行某些操作。我最初写这个只是为了处理整数,但我意识到我需要让它处理更多的数据类型。

一个示例检查是这样的...它查看 SomeValue 是否大于 20。

<If field="SomeValue" test="@gt" value="20" />

*该字段只是一些字符串值。所以对于 double 来说, field 大约是 55.7。

我所做的就是对值执行 int.TryParse 以查看是否可以将字符串 (SomeValue) 转换为整数。如果可以,我会检查它是否大于 20。如果不是,我就假设检查结果为 false。

有人对我如何处理任何数据类型有任何建议吗? (即字符串、 double 、日期时间)泛型会起作用吗?我从未使用过它们,所以我不知道它们是否是最佳解决方案。谢谢。

最佳答案

棘手的一点是当你不知道类型时的解析,但这可以用 TypeDescriptor.GetConverter 来完成。 :

    object knownVal = 21;  //perhaps obtained from reflection
Type type = typeof(int);
string text = "20";
object val = TypeDescriptor.GetConverter(type)
.ConvertFromInvariantString(text);

int rel = Comparer.Default.Compare(knownVal, val);

泛型一个选项(尤其是对于 Comparer<T>.Default.Compare ),但泛型与 Type 不能很好地融合。只有在运行时才知道的值。可以做到 ( MakeGenericType/MakeGenericMethod ),但它很丑而且有点慢。

但老实说:如果是我,我会假设这里有少量类型需要处理,并对它们进行特殊处理。

关于c# - 如何通过代码泛化分析数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4474261/

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