C# 检查列表中是否存在位置[x]处的元素

C# 检查列表中是否存在位置[x]处的元素,c#,list,C#,List,如果我有一个字符串列表 List<String> list = new list<String>(); list.add("str1"); list.add("str2"); list.add("str3"); ElementAtOrDefault()是System.Linq命名空间的一部分 尽管您有一个列表,所以您可以使用List.Count>2,即使满足List.Count>desiredIndex,如果索引-1..@SubjectX-而不是挑剔。通常使用由Inde

如果我有一个字符串列表

List<String> list = new list<String>();
list.add("str1");
list.add("str2");
list.add("str3");
ElementAtOrDefault()是
System.Linq
命名空间的一部分


尽管您有一个列表,所以您可以使用
List.Count>2

,即使满足List.Count>desiredIndex,如果索引<0,检索元素也会抛出异常。这是挑剔。desiredIndex可能是正数。如果这不是可靠的声明,只需添加desiredIndex>-1..@SubjectX-而不是挑剔。通常使用由
IndexOf
返回的索引,该索引的读取速度比常规的.Count检查快-1,但请注意,“null”项在列表中理论上是有效的,所以如果测试不满足,不要依赖它来引发异常。您可以使用ie.
list.elementatorderfault(2)?默认值
code-only答案不鼓励使用,因为它们没有解释如何解决问题。请更新您的答案,以解释这是如何改进此问题已有的其他被接受和投票表决的答案的。另外,这个问题已经问了7年了,您的努力会得到最近有未回答问题的用户的赞赏。请复习。
if (list.Count > desiredIndex && list[desiredIndex] != null)
{
    // logic
}
if(list.ElementAtOrDefault(2) != null)
{
   // logic
}
if (list.Count > desiredIndex && list[desiredIndex] != null)
{
    // logic
}
int? here = (list.ElementAtOrDefault(2) != 0 ? list[2]:(int?) null);