我有以下代碼來查看Student對象列表。其目的是逐個遍歷列表中的每個Student對象,逐個訪問每個學生對象的Fees屬性(這是一個數組),併爲每個學生排列費用陣列。簡而言之,代碼的目的是通過DueDate爲列表中的每個學生對象對每個費用排序。在排序過程中重複數據和寫入數據
foreach (var resultSet in globalResultSet)
{
for(var i=0; i < resultSet.Length; i++)
{
resultSet[i].Fees = resultSet[i].Fees.ToList().OrderBy(x => x.DueDate).ToArray();
}
}
代碼工作,但問題是,因爲賦值運算符,每一個獨特的學生對象將具有同一組的分類收費。
例如,在運行代碼後,如果學生A有費用1,2,3,那麼學生B,C ... n在排序後也都會收取費用1,2,3。
解決此問題的最佳方法是什麼?
我想按日期排列每個學生的費用,但我不希望他們都得到相同的結果。所有學生都應該有自己獨特的一套排序費用,而不是全部都有相同的費用。
請幫忙。
-------- --------編輯
按照要求,這裏是globalResultSet
的解釋。
我在做什麼是通過wcf服務發送一些學生數據,以獲得與每個學生相關的學費。下面的代碼顯示了這個過程的工作原理。重要的是要注意的是,除了一些基本的數據類型,每個學生對象都有一個屬性是一個數組(這是每個學生存儲費用的地方)。但是當我嘗試爲每個學生對象排列數組時,所有學生都得到相同的排序費用。即,他們都有相同的費用排列,當每個學生應該排序後有一個獨特的排序費用陣列。
// global variable
private List<MyService.Student[]> globalResultSet = new List<MyService.Student[]>();
// then the rest in an event handler
ServiceClient client = new ServiceClient();
MyService.Student student = new MyService.Student();
for (int i = 0; i < students.Count; i++)
{
if (students[i].StudentID > 0)
{
student.StudentID = students[i].StudentID;
student.FirstName = students[i].FirstName;
student.LastName = students[i].LastName;
MyService.Student[] restultSet = client.GetFees(new MyService.Student[] { student });
globalResultSet.Add(restultSet);
}
else
{
continue;
}
}
client.Close();
if (globalResultSet.Count > 0)
{
MessageBox.Show("Data loaded", "", MessageBoxButtons.OK);
}
else
{
MessageBox.Show("Data NOT loaded", "Error", MessageBoxButtons.OK);
}
你在對象中有什麼:globalResultSet。你可以發佈該代碼嗎? – mmssaann
@mmssaann,請參閱問題中的編輯。這應該提供關於'globalResultSet'的答案。請致電 – Zolt
!有沒有人知道解決這個問題的方法? – Zolt