访问作用域外的对象
本文关键字:对象 作用域 访问 | 更新日期: 2023-09-27 18:03:50
我有一个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呢?
谢谢
您可以使用嵌套的loop
,并在内部循环中使用外部loop
对象,如下所示。
foreach (Student newSortedStudent in studentWithData)
{
foreach(Student studentData in newSortedStudent.Fee.OrderBy......ToArray())
{
....
}
}
您需要访问哪个newSortedStudent
?你只是循环遍历了其中的一个集合。它不在讨论范围之内是有原因的。我建议:
1)将其设置为存在于您试图使用的范围内的变量(即在foreach循环之前定义一个变量,然后确定与哪个newSortedStudent
设置它)。或者你可以将它的索引存储在一个变量中然后使用它在studentWithData
或
2)当你在上下文中拥有它时,在循环中对它做你需要做的事情。
如果你不知道你要做什么,很难知道是否需要这些或其他的解决方案。
需要在循环之前定义一个变量。将newSortedStudent对象存储在循环中的变量中。然后在循环之后访问变量 !
也就是
Student s = new Student();
foreach (Student newSortedStudent in studentWithData)
{
newSortedStudent = newSortedStudent.Fee.OrderBy......ToArray();
s = newSortedStudent;
}
// Use s for your manipulations
试试这个,
Student sortedStudent = null;
foreach (Student newSortedStudent in studentWithData)
{
sortedStudent = newSortedStudent.Fee.OrderBy......ToArray();
}
if(sortedStudent != null){
foreach(Student studentData in sortedStudent)
{
....
}
}
foreach (Student newSortedStudent in studentWithData)
{
foreach(Student studentData in newSortedStudent)
{
....
}
}
在作用域外获取变量/对象的方法有很多。1.一种方法是使用带有某些标志的嵌套循环。2.其次,公开创建学生类型对象,然后将newStoreStudent分配给该对象,当newStoreStudent用新值填充时。