如何在列表<>中找到最后一个元素?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (41)

以下是我的代码的摘录:

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;
}

我试图在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;
}

这里的问题是:我试图使用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);
}

我希望找到最后一个元素,以便在for循环中将cnt 3等效,并打印出列表中的所有条目。列表中的每个元素都是前面代码示例中提到的类AllIntegerID的对象。如何在列表中找到最后一个有效条目?

我是否应该使用类似于INTERGERLST.Find的东西(INGERList[].m_MessageText==NULL;

如果我使用它,它将需要一个从0到任何最大值的索引。这意味着我将不得不使用另一个for循环,我不打算使用。有没有更短/更好的方法?

提问于
用户回答回答于

如果你只想访问列表中的最后一项,你可以做

var item = integerList[integerList.Count - 1];

要获得列表中的项目总数,您可以使用计数Propery

var itemCount = integerList.Count;
用户回答回答于

要获取集合的最后一个项目,请使用LastOrDefault()Last()扩展方法

var lastItem = integerList.LastOrDefault();

要么

var lastItem = integerList.Last();

请记住添加using System.Linq;,否则此方法将不可用。

扫码关注云+社区