Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#多维数组解析_C#_Arrays_C# 4.0_Multidimensional Array - Fatal编程技术网

C#多维数组解析

C#多维数组解析,c#,arrays,c#-4.0,multidimensional-array,C#,Arrays,C# 4.0,Multidimensional Array,我有一个多维数组 调试器中的内容如下所示 阵列设置为 String[,] s = new String[6,4] 我基本上需要知道哪一行说不,但我在解析数组时遇到了困难。任何帮助都将不胜感激。您可以使用以下方法: var rowIndices = Enumerable.Range(0, s.GetLength(0)).Where(i => s[i, 2] == "No"); IEnumurable<int> GetRowNumbersThatSayNo(string[,]

我有一个多维数组

调试器中的内容如下所示

阵列设置为

String[,] s = new String[6,4]


我基本上需要知道哪一行说不,但我在解析数组时遇到了困难。任何帮助都将不胜感激。

您可以使用以下方法:

var rowIndices = Enumerable.Range(0, s.GetLength(0)).Where(i => s[i, 2] == "No");
IEnumurable<int> GetRowNumbersThatSayNo(string[,] values)
{
for(int i=0;i<values.Length;i++)
if(values[i,2]=="No") yield return i;
}
IEnumurable GetRowNumbersThatSayNo(字符串[,]值)
{
对于(inti=0;iso

[TestMethod]
公开无效测试()
{
var text=新字符串[6,4]
{
{“A”、“B”、“C”、“是”},
{“A”、“B”、“C”、“是”},
{“A”、“B”、“C”、“是”},
{“A”、“B”、“C”、“是”},
{“A”,“B”,“Not”,“C”},
{“A”、“B”、“C”、“是”}
};
var rowWithNot=新列表();
用于(int行=0;行<6;行++)
for(int col=0;col<4;col++)
if(文本[行,列].包含(“非”))
{
rowWithNot.Add(行);
打破
}
foreach(行中的变量行WithNot)
{
for(int col=0;col<4;col++)
{
Console.WriteLine(文本[行,列]);
}
}
}

如果您需要“解析”,那么多域数组不是最好的数据结构。为什么它不是一个
列表?
?您昨天得到的答案已经涵盖了可能的重复。您的示例数据显示了4行和4列,因此无法区分哪个数组维度表示行,哪个维度表示列。这看起来非常优雅,但行表示索引数组吗?这是一个可枚举序列。在末尾添加“.ToList()”以获取列表。
IEnumurable<int> GetRowNumbersThatSayNo(string[,] values)
{
for(int i=0;i<values.Length;i++)
if(values[i,2]=="No") yield return i;
}
        [TestMethod]
        public void test()
        {
            var text = new String[6, 4]
                               {
                                   {"A", "B", "C", "Yes"},
                                   {"A", "B", "C", "Yes"},
                                   {"A", "B", "C", "Yes"},
                                   {"A", "B", "C", "Yes"},
                                   {"A", "B", "Not", "C"},
                                   {"A", "B", "C", "Yes"}
                               };
            var rowWithNot = new List<int>();

            for (int row = 0; row < 6; row++)
                for (int col = 0; col < 4; col++)
                    if (text[row, col].Contains("Not"))
                    {
                        rowWithNot.Add(row);
                        break;
                    }

            foreach (var row in rowWithNot)
            {
                for (int col = 0; col < 4; col++)
                {
                    Console.WriteLine(text[row, col]);
                }

            }
         }