c# - 如何找到 List<> 中的最后一个元素?

标签 c# list

以下是我的代码的摘录:

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 循环中将 cnt3 等同起来并打印出 List 中的所有条目。列表中的每个元素都是类 AllIntegerIDs 的对象,如上面代码示例中所述。如何找到列表中的最后一个有效条目?

我应该使用像 integerList.Find(integerList[].m_MessageText == null; 这样的东西吗?

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

最佳答案

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

var lastItem = integerList.LastOrDefault();

var lastItem = integerList.Last();

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

关于c# - 如何找到 List<> 中的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1246918/

相关文章:

c# - 隐藏打印页面中的特定列c#

c# - 为什么 List<T> 出现 "Index was out of range"异常而不是数组?

python - 如何选择一个好的Python列表数据结构来存储每一种可能的井字棋游戏

list - 为什么我在标量上看到下标的奇怪行为?

java - 有没有办法在 REST 调用的同一参数中接收对象或列表?

python - 如何在 Python 中将 CSV 列导入为列表?

c# - 如何处理层与层之间的输入和参数验证?

c# - 带有文件和字典的 AspNetCore3 多部分帖子未按预期工作

c# - 将 int 转换为十六进制而不是字符串

c# - 使用 HTML Agility Pack 解析表格