Aşağıdaki benim kod bir özü:
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;
}
Benim main () işlev kodunda aşağıdaki kullanmaya çalışıyorum:
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;
}
Sorun burada: bir for döngüsü kullanarak listemdeki tüm öğeleri yazdırmaya çalışıyorum:
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);
}
Ben benim döngü içinde cnt3 eşitlemek ve List tüm girişleri yazdırmak için son elemanı bulmak istiyorum. Listedeki her öğe, yukarıda kod örneğinde belirtildiği gibi AllIntegerIDs sınıfının bir nesnesidir. Listedeki son geçerli girişi nasıl bulurum?
İntegerList.Find (integerList []. M_MessageText == null;
Eğer bunu kullanırsam 0 ile maksimum arasında değişen bir indekse ihtiyaç duyar. Kullanmayı düşünmediğim döngü için başka bir tane kullanmak zorunda olacağım anlamına gelir. Daha kısa / daha iyi bir yol var mı?
Teşekkürler, Viren
AllIntegerIDs newItem = new AllIntegerID();
tüm alanları atamak ve sonra aramak için kullanmanızı öneririm integerList.Add(newItem)
. Veya alanlar yerine özellikleri ve C # 3.0 nesne başlatıcı sözdizimini kullanın.