在运行时我得到两个不同的数组v-if="1 === 2"
,我想检查第一个数组中的值是否与另一个中的值相同。元素的实际类型可以是{object[10]}
,string
或int
。例如元素bool
和元素[1] = "Test"
等等。
我所做的是:
[2] = 3
我不能说我对这个解决方案感到满意,但似乎根据我做的几个测试来判断。但是我觉得应该有更好的方法来做到这一点。
附加 从评论来看,Judjing可能在我的问题上并不太清楚。这就是我得到的输入:
我希望其他数组包含相同的数据。唯一的问题是所有元素都存储为对象。因此,例如,我想知道第一个数组中的元素 for (var j = 0; j < newData.ItemArray.Length; j++)
{
if (newData.ItemArray[j].ToString().ToLower() != originalData.ItemArray[j].ToString().ToLower())
{
isModified = true;
break;
}
}
是否与另一个数组中的元素[3]
相似。理想情况下,我想比较两个布尔值,但由于所有内容都存储为对象我在寻找想法如何检查值是否相同,或者例如来自另一个数组中[3]
的{{1}等等..
答案 0 :(得分:5)
由于您使用ItemArray
我非常确定DataRow
的属性会返回此行所有字段的Object[]
。所以你想比较两个数据行。
您可以使用SequenceEqual
:
bool isModifed = !newData.ItemArray.SequenceEqual(originalData.ItemArray);
这比较区分大小写,而不是你的方法。
如果你想忽略这个案子:
isModifed = !newData.ItemArray.Select(obj => obj?.ToString())
.SequenceEqual(originalData.ItemArray.Select(obj => obj?.ToString())
, StringComparer.InvariantCultureIgnoreCase);