Ce qui suit est un extrait de mon code:
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;
}
J'essaie d'utiliser ce qui suit dans mon code de fonction main ():
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;
}
Le problème est ici: j'essaie d'imprimer tous les éléments de ma liste en utilisant une boucle 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);
}
Je veux trouver le dernier élément pour que j'assimile cnt3 dans ma boucle for et que j'imprime toutes les entrées de la liste. Chaque élément de la liste est un objet de la classe AllIntegerIDs comme mentionné ci-dessus dans l'exemple de code. Comment trouver la dernière entrée valide dans la liste?
Dois-je utiliser quelque chose comme integerList.Find (integerList []. M_MessageText == null;
Si j'utilise cela, il faudra un index qui va de 0 à n'importe quel maximum. Cela signifie que je devrai utiliser une autre boucle for que je n'ai pas l'intention d'utiliser. Existe-t-il un moyen plus court / meilleur?
Merci, Viren
AllIntegerIDs newItem = new AllIntegerID();
, utilisez cela pour attribuer tous les champs, puis appelez integerList.Add(newItem)
. Ou utilisez des propriétés plutôt que des champs et utilisez la syntaxe d'initialisation d'objet C # 3.0.