Berikut ini adalah ekstrak dari kode saya:
public class AllIntegerIDs
{
public AllIntegerIDs()
{
m_MessageID = 0;
m_MessageType = 0;
m_ClassID = 0;
m_CategoryID = 0;
m_MessageText = null;
}
~AllIntegerIDs()
{
}
public void SetIntegerValues (int messageID, int messagetype,
int classID, int categoryID)
{
this.m_MessageID = messageID;
this.m_MessageType = messagetype;
this.m_ClassID = classID;
this.m_CategoryID = categoryID;
}
public string m_MessageText;
public int m_MessageID;
public int m_MessageType;
public int m_ClassID;
public int m_CategoryID;
}
Saya mencoba menggunakan yang berikut ini dalam kode fungsi utama () saya:
List<AllIntegerIDs> integerList = new List<AllIntegerIDs>();
/* some code here that is ised for following assignments*/
{
integerList.Add(new AllIntegerIDs());
index++;
integerList[index].m_MessageID = (int)IntegerIDsSubstring[IntOffset];
integerList[index].m_MessageType = (int)IntegerIDsSubstring[IntOffset + 1];
integerList[index].m_ClassID = (int)IntegerIDsSubstring[IntOffset + 2];
integerList[index].m_CategoryID = (int)IntegerIDsSubstring[IntOffset + 3];
integerList[index].m_MessageText = MessageTextSubstring;
}
Masalahnya ada di sini: Saya mencoba untuk mencetak semua elemen dalam Daftar saya menggunakan for for:
for (int cnt3 = 0 ; cnt3 <= integerList.FindLastIndex ; cnt3++) //<----PROBLEM HERE
{
Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\n", integerList[cnt3].m_MessageID,integerList[cnt3].m_MessageType,integerList[cnt3].m_ClassID,integerList[cnt3].m_CategoryID, integerList[cnt3].m_MessageText);
}
Saya ingin menemukan elemen terakhir sehingga saya menyamakan cnt3 di loop untuk saya dan mencetak semua entri dalam Daftar. Setiap elemen dalam daftar adalah objek dari kelas AllIntegerIDs sebagaimana disebutkan di atas dalam contoh kode. Bagaimana cara menemukan entri terakhir yang valid dalam Daftar?
Haruskah saya menggunakan sesuatu seperti integerList.Find (integerList []. M_MessageText == null;
Jika saya menggunakan itu akan memerlukan indeks yang akan berkisar dari 0 hingga apa pun maksimum. Berarti saya harus menggunakan yang lain untuk loop yang tidak ingin saya gunakan. Apakah ada cara yang lebih pendek / lebih baik?
Terima kasih, Viren
AllIntegerIDs newItem = new AllIntegerID();
, gunakan itu untuk menetapkan semua bidang lalu panggil integerList.Add(newItem)
. Atau gunakan properti daripada bidang dan gunakan sintaks penginisialisasi objek C # 3.0.