存在于列表 c#
Exist in list c#
我想知道我的元素 [3] 是否存在于我的列表中:
List<String> Elements = Ligne.Split(',').ToList();
if (Elements[2] != ""){
if (Elements[3] != ""){//do something}
else{//do another thing}
我的 "Ligne" 可以有 3 个元素 (0,1,2) 或 4 个 (0,1,2,3),我无法测试我的 Elements[3] 是否存在,因为如果它不存在 visual studio 说 -> "Index limit reach".
您可以查看列表中有多少个元素;
List<String> Elements = Ligne.Split(',').ToList();
if (Elements[2] != ""){
if (Elements.Count > 3 && Elements[3] != ""){//do something}
else{//do another thing}
一种检查方法可能是测试 Elements.Count
属性 以查看是否有 4 个元素。由于您要处理的字符串在拆分后可能有也可能没有那么多元素,因此这可能是可行的方法。
List<String> Elements = Ligne.Split(',').ToList();
if (Elements[2] != ""){
if (Elements.Count >= 4){//do something}
else{//do another thing}
在您的代码中:
List<String> Elements = Ligne.Split(',').ToList();
if (Elements[2] != ""){
if (Elements[3] != ""){//do something}
else{//do another thing}
您假设至少有 4 个元素。然而。如果不是这样怎么办?显然当情况不正确时会出现这种情况,最简单的解决方法是
if (Elements.Count>2 && Elements[2] != "")
{
if (Elements.Count>3 && Elements[3] != ""){//do something}
else{//do another thing}
}
最好的方法是使用 Elements.Count
- 这会告诉您列表中元素的数量。
List<String> Elements = Ligne.Split(',').ToList();
if (Elements.Count >= 3 && Elements[2] != "")
{
if (Elements.Count >= 4 && Elements[3] != "")
{ /*do something*/ }
else
{ /*do another thing*/ }
}
您可以简单地使用 .exists 方法来检查列表元素是否存在。返回 bool
值(找到为真,未找到为假)。
在您的情况下,它看起来像这样(免责声明:此代码可能无法编译):
List<String> Elements = Ligne.Split(',').ToList();
bool myValueExists = Elements.Exists(x => x[3] != null);
if (myValueExists){
/* Proceed with whatever you desire */
}
这种方法简洁明了。无需担心列表中有多少元素。以后的开发者也很容易认识和理解。
var newList = Elements.Select((val, idx) => new { Value = val, Index = idx});
像这样使用 Linq,您可以获得一个新的自定义对象列表,其中包含与索引关联的值。现在您可以轻松检查具有特定索引的项目是否存在:
if (newList.SingleOrDefault(i => i.Index == 3) != null)
{
// do something
}
我想知道我的元素 [3] 是否存在于我的列表中:
List<String> Elements = Ligne.Split(',').ToList();
if (Elements[2] != ""){
if (Elements[3] != ""){//do something}
else{//do another thing}
我的 "Ligne" 可以有 3 个元素 (0,1,2) 或 4 个 (0,1,2,3),我无法测试我的 Elements[3] 是否存在,因为如果它不存在 visual studio 说 -> "Index limit reach".
您可以查看列表中有多少个元素;
List<String> Elements = Ligne.Split(',').ToList();
if (Elements[2] != ""){
if (Elements.Count > 3 && Elements[3] != ""){//do something}
else{//do another thing}
一种检查方法可能是测试 Elements.Count
属性 以查看是否有 4 个元素。由于您要处理的字符串在拆分后可能有也可能没有那么多元素,因此这可能是可行的方法。
List<String> Elements = Ligne.Split(',').ToList();
if (Elements[2] != ""){
if (Elements.Count >= 4){//do something}
else{//do another thing}
在您的代码中:
List<String> Elements = Ligne.Split(',').ToList();
if (Elements[2] != ""){
if (Elements[3] != ""){//do something}
else{//do another thing}
您假设至少有 4 个元素。然而。如果不是这样怎么办?显然当情况不正确时会出现这种情况,最简单的解决方法是
if (Elements.Count>2 && Elements[2] != "")
{
if (Elements.Count>3 && Elements[3] != ""){//do something}
else{//do another thing}
}
最好的方法是使用 Elements.Count
- 这会告诉您列表中元素的数量。
List<String> Elements = Ligne.Split(',').ToList();
if (Elements.Count >= 3 && Elements[2] != "")
{
if (Elements.Count >= 4 && Elements[3] != "")
{ /*do something*/ }
else
{ /*do another thing*/ }
}
您可以简单地使用 .exists 方法来检查列表元素是否存在。返回 bool
值(找到为真,未找到为假)。
在您的情况下,它看起来像这样(免责声明:此代码可能无法编译):
List<String> Elements = Ligne.Split(',').ToList();
bool myValueExists = Elements.Exists(x => x[3] != null);
if (myValueExists){
/* Proceed with whatever you desire */
}
这种方法简洁明了。无需担心列表中有多少元素。以后的开发者也很容易认识和理解。
var newList = Elements.Select((val, idx) => new { Value = val, Index = idx});
像这样使用 Linq,您可以获得一个新的自定义对象列表,其中包含与索引关联的值。现在您可以轻松检查具有特定索引的项目是否存在:
if (newList.SingleOrDefault(i => i.Index == 3) != null)
{
// do something
}