【问题标题】:C# Two Dimensional Array and Array.Find - Cannot Convert ErrorC# 二维数组和 Array.Find - 无法转换错误
【发布时间】:2016-06-18 21:15:57
【问题描述】:

我声明了一个二维数组。它有两列 - 文件名和批处理。我把它初始化为空。

string[,] a_Reports = new string[,] { { "", "" } };

我有一些代码可以调整它的大小并填充它。一切都是字符串值。当我像这样在数组中查找元素时:

int value1 = Array.Find<string>(a_Reports, element=>element.Equals(newFileName));

我得到错误:

CS1503  Argument 1: cannot convert from 'string[*,*]' to 'string[]' 

我已经尝试了各种方法,但没有任何效果。请帮我!!!我已经花了好几个小时了。

【问题讨论】:

  • 我认为错误信息很清楚。不要在string[,] 上使用Array.Find
  • 不应该是:查找
  • Find 是个好主意,但没有奏效。我认为有一种比遍历数组更简单的方法,我认为 .Find 就可以了,但我猜语法并不明显。

标签: c# arrays multidimensional-array


【解决方案1】:

Array.Find 仅适用于一维数组。 (MSDN)

在“How do I search a multi-dimensional array?”上查看此答案

产生类似的扩展方法,如in my example on rextester

或者使用交错数组而不是二维数组以及 foreach 和 find 的组合,例如:

string[][] jagged = ...
Array.ForEach(jagged, array=>Array.Find(array, x=>x=="" ));

【讨论】:

  • 非常感谢。我最终做了一个数组扫描函数。
猜你喜欢
  • 1970-01-01
  • 2010-09-26
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 2010-10-13
  • 2015-10-15
  • 2010-10-16
  • 2012-03-08
相关资源
最近更新 更多