我需要使用List<List <string >>
来模拟数据矩阵和Im。
我使用IndexOf
搜索列表列表中的元素。
Matrix[0].IndexOf('Search');
但有可能在IndexOf
中制作一种Matrix
吗?
答案 0 :(得分:2)
您可以使用FindIndex
方法:
int index = Matrix.FindIndex(x => x[colIndex] == "Search");
如果要通过了解要搜索的列来搜索行索引,此方法显然很有用。
如果你想在整个矩阵中搜索,你可以编写一个简单的方法:
public static Tuple<int,int> PositionOf<T>(this List<List<T>> matrix, T toSearch)
{
for (int i = 0; i < matrix.Count; i++)
{
int colIndex = matrix[i].IndexOf(toSearch);
if (colIndex >= 0 && colIndex < matrix[i].Count)
return Tuple.Create(i, colIndex);
}
return Tuple.Create(-1, -1);
}
答案 1 :(得分:1)
你必须自己上课才能实现它。
public class Matrix<T>
{
public void IndexOf<T>(T value, out int x, out int y){...}
}
或在您的类型
上使用扩展程序public static void IndexOf<T>(this List<List<T>> list, out int x, out int y){...}
就个人而言,我会在2维数组而不是List<List<T>>
上进行扩展。
答案 2 :(得分:0)
for(int i = 0; i<Matrix.Length; i++)
for(int j = 0; j<Matrix.Length; j++)
if(Matrix[i][j] == "Search")
{
//OUT i,j;
return;
}
答案 3 :(得分:0)
您可能要求的内容如下:
示例
public void MatrixIndexOf(string content) {
var result = matrix.Select((value, index)=> new {
_i = index,
_str = value
}).Where(x=>x._str.Contains(content));
}
此result
之后是_i
为索引的匿名类型。