gpt4 book ai didi

c# - 将数据行值与 if 中的字符串进行比较

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

我有一个应用程序,它将用户选择的值存储到我的数据集填充数据表中的值。我需要根据这个比较在表中设置另一列。但是比较不起作用。它总是返回 false,不进入 if 条件。

foreach (DataRow dr in dsQuestions.Tables[0].Rows)
{
if (dr["Data"] == indicater[0])
{
dr["IsSelected"] = true;
}
}

indiactor[0] 是一个字符串数组,dr["data"] 也是字符串类型,但它会显示一条警告,指出它需要字符串类型。

最佳答案

DataRow 索引器返回该索引处的字段作为 object 而不是 string

我建议使用强类型 Field - 也支持 nullables 的扩展方法:

if (dr.Field<String>("Data") == indicater[0]){}

... 和 SetField也支持可空类型的方法:

dr.SetField("IsSelected", true);

更新如果indicator[0] 确实是一个string[](不是一个string),你想如何比较一个字符串和一个字符串[]?例如,如果您想要检查数组是否包含此数据:

if (indicater[0].Contains(dr.Field<String>("Data"))){}

这也可以解释为什么它永远不会进入 if:因为 == 只按相等比较字符串,其他类型没有覆盖 = = - 运算符将只比较引用。 string 绝不是与 string[] 相同的引用。但是您不会收到编译时错误,因为您可以将 object 与其他所有内容进行比较。

关于c# - 将数据行值与 if 中的字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25638438/

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