如何比较和存储 1D 和 2D 数组 c# 中的比较元素
本文关键字:比较 数组 元素 2D 存储 何比较 1D | 更新日期: 2023-09-27 18:35:57
>我在比较数组时感到困惑我的代码是:
结果是一个 1D 数组,符号表1 是一个 2D 数组...这些数组至少包含 100、100 个值
for (int row = 0; row < symboltable1.GetLength(0); row++)
{
for (int column = 0; column < symboltable1.GetLength(1); column++)
{
for (int we = 0; we < result.Length; we++)
if (result[we].Contains(symboltable1[row, column]))
listBox1.Items.Add("vliad");
else
listBox2.Items.Add("invalid");
}
}
我现在想要的是如何在另一个名为 symboltable2 的 2D 数组中存储有效术语?通过有效术语,我的意思是上述两个数组中的术语????
您可以使用
下面的通用函数将 2D 数组展平为IEnumerable
,将元素放入哈希集中,并根据该哈希表检查术语。
private static IEnumerable<T> Flatten<T>(T[,] data) {
var r = data.GetLength(0);
var c = data.GetLength(1);
return Enumerable.Range(0, r*c).Select(i => data[i/c, i%c]);
}
var symTableItems = new HashSet<string>(Flatten(symboltable1));
var allValid = result.Where(s => symTableItems.Contains(s)).ToList();