0

我有一个名为 Student 的类:它具有名为 _ClassValues 的属性。它基本上是字符串键值对的 IEnumerable,其值如下:

Student._ClassValues[0, 0] = "Class1"
Student._ClassValues[0, 1] = "Class2"
Student._ClassValues[0, 2] = "Class2"
Student._ClassValues[0, 3] = "Class1"
... So on.. 
Student._ClassValues[1, 1] = "Exam1"
Student._ClassValues[1, 2] = "Exam2"
Student._ClassValues[1, 3] = "Exam1"
... So on.. 

有没有更简单的方法来获取所有包含字符串“Class1”的_ClassValues?

我创建了很多方法来获取这些值,但我知道必须有更好的方法来做到这一点,是吗?

4

2 回答 2

0

您可以使用简单的 foreach 循环遍历二维数组中的所有值:

foreach (string value in Student._ClassValues)
{
    if (value == "Class1")
    { 
        // do something
    }
}
于 2013-10-02T19:47:34.897 回答
0

这应该这样做:

List<KeyValuePair<int, int>> FindString(string[,] values, string search)
{
    var result = new List<KeyValuePair<int, int>>();
    for (int i = 0; i < values.GetLength(0); i++)
    {
        for (int j = 0; j < values.GetLength(1); j++)
        {
            if (values[i, j] == search)
            {
                result.Add(new KeyValuePair<int, int>(i, j));
            }
        }
    }
    return result;
}

像这样称呼它:

var positions = FindString(Student._ClassValues, "Class1");
于 2013-10-02T20:02:38.707 回答