如何从 IEnumerable 获取键值对集
本文关键字:键值对 获取 IEnumerable | 更新日期: 2023-09-27 18:33:42
我有一个名为 Student 的类:它具有称为_ClassValues的属性。它基本上是一个字符串键值对的 IE无数,其值如下:
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?
我创建了很多方法来获取这些值,但我知道必须有更好的方法来做到这一点,不是吗?
这应该可以做到:
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");
您可以使用简单的 foreach 循环遍历二维数组中的所有值:
foreach (string value in Student._ClassValues)
{
if (value == "Class1")
{
// do something
}
}