-1

我有一个看起来像这样的 foreach 循环

foreach (Student newSortedStudent in studentWithData)
{
    newSortedStudent.Fees = newSortedStudent.Fees.OrderBy......ToArray();
}

但现在我需要访问这个 newSortedStudent 对象并对其进行更多操作。

如果我做这样的事情

foreach (Student newSortedStudent in studentWithData)
{
    newSortedStudent.Fees = newSortedStudent.Fee.OrderBy......ToArray();
}

foreach(Student studentData in **newSortedStudent**)
{
    ....
}

我会得到一个错误 newSortedStudent 在当前上下文中不存在。

那么如何在 foreach 循环之外访问 newSortedStudent 呢?

谢谢

4

6 回答 6

1

您可以在内部循环中使用嵌套loop和使用外部对象,如下所示。loop

foreach (Student newSortedStudent in studentWithData)
{
    foreach(Student studentData in newSortedStudent.Fee.OrderBy......ToArray())
    {
        ....
    }    
}
于 2013-03-13T06:06:30.783 回答
0

您需要访问哪个newSortedStudent?您只是循环浏览了它们的集合。它超出范围是有原因的。我建议:

1) 将其设置为您尝试使用的范围内存在的变量(即在 foreach 循环之前定义一个变量,然后确定使用哪个变量newSortedStudent进行设置)。或者您可以将它的索引存储在一个变量中并使用它来查找它studentWithData

或者

2)当你在上下文中时,在循环中做你需要做的事情。

在不确切知道您要做什么的情况下,很难知道是否需要这些或其他解决方案。

于 2013-03-13T05:59:57.750 回答
0

您需要在循环之前定义一个变量。将 newSortedStudent 对象存储在循环的该变量中。然后在循环访问该变量!

所以这就像

Student s = new Student();

foreach (Student newSortedStudent in studentWithData)
{
    newSortedStudent = newSortedStudent.Fee.OrderBy......ToArray();
    s = newSortedStudent;
}

// Use s for your manipulations
于 2013-03-13T06:00:41.397 回答
0
foreach (Student newSortedStudent in studentWithData)
{
    foreach(Student studentData in newSortedStudent)
   {
       ....
   }
}
于 2013-03-13T06:07:13.927 回答
0

尝试这个,

    Student sortedStudent = null;

    foreach (Student newSortedStudent in studentWithData)
    {
        sortedStudent = newSortedStudent.Fee.OrderBy......ToArray();
    }

 if(sortedStudent != null){
    foreach(Student studentData in sortedStudent)
    {
        ....
    }
  }
于 2013-03-13T06:08:47.980 回答
0

有很多方法可以让变量/对象超出范围。1.一种方法是使用带有一些标志的嵌套循环。2.第二次公开创建Student类型对象,然后将newStoreStudent分配给这个对象,当newStoreStudent被填充新值时。

于 2013-03-13T07:26:15.323 回答