根据C#中的另一个唯一索引修改数组中索引的值

时间:2018-03-19 10:07:24

标签: c# arrays

我正在使用C#中的2个对象类型数组,我的一个数组是从MS Access填充的,另一个是从MySql填充的。

object[] Product = [{123, "Tea"},{234, "Coffee"},{345, "Drinks"}]; // from MySql

object[] ProductDetails = [{123, "T", 23.00},{234, "C", 25.02},{345, "D", 11.88}]; // from MS Access

我需要遍历其全部ProductDetails以匹配Product数组中的ID,其中ID匹配,将product数组中的名称替换为productsdetails数组,

或者任何其他方法在c#代码中有效地执行。 记录可能有数千个

2 个答案:

答案 0 :(得分:3)

在这里,您可以看到不应该使用多维对象数组的充分理由。相反,你应该使用list sw { key name; leaf name { type string; } } 。我建议您实施自定义类Dictionary<TKey, TValue>。然后字典将是Product。这将是非常有效和可读的。

然而,要回答你的问题并展示一塌糊涂:

Dictionary<int, Product>

答案 1 :(得分:0)

如果您正在使用linq,您可以加入ID上的两个数组(我不确定您是否必须先将它们转换为List()), 然后创建一个新数组,从中选择每个数组所需的数据。

var result = (from p in Products join pd in ProductDetails where p.Id equals pd.Id select new ...).ToList()