C# foreach循环中列表中的第一个或最后一个元素
我有一个列表,我想识别列表中的第一个或最后一个元素,这样我就可以识别与该项相关的不同功能 例如 如何定义List.CurrentItem?在这种情况下,for循环会更好吗?宁可利用 连接指定数组的元素或 集合,在每个元素或元素之间使用指定的分隔符 成员 这要简单得多 差不多C# foreach循环中列表中的第一个或最后一个元素,c#,list,foreach,C#,List,Foreach,我有一个列表,我想识别列表中的第一个或最后一个元素,这样我就可以识别与该项相关的不同功能 例如 如何定义List.CurrentItem?在这种情况下,for循环会更好吗?宁可利用 连接指定数组的元素或 集合,在每个元素或元素之间使用指定的分隔符 成员 这要简单得多 差不多 string s = string.Join(", ", new List<string> { "Foo", "Bar"
string s = string.Join(", ", new List<string>
{
"Foo",
"Bar"
});
宁可利用
连接指定数组的元素或
集合,在每个元素或元素之间使用指定的分隔符
成员
这要简单得多
差不多
string s = string.Join(", ", new List<string>
{
"Foo",
"Bar"
});
试着这样做:
string newString = "";
foreach (string s in List)
{
if( newString != "" )
newString += ", " + s;
else
newString += s;
}
试着这样做:
string newString = "";
foreach (string s in List)
{
if( newString != "" )
newString += ", " + s;
else
newString += s;
}
你可以像这样使用柜台
int counter = 0 ;
foreach (string s in List)
{
if (counter == 0) // this is the first element
{
string newString += s;
}
else if(counter == List.Count() - 1) // last item
{
newString += s + ", ";
}else{
// in between
}
counter++;
}
你可以像这样使用柜台
int counter = 0 ;
foreach (string s in List)
{
if (counter == 0) // this is the first element
{
string newString += s;
}
else if(counter == List.Count() - 1) // last item
{
newString += s + ", ";
}else{
// in between
}
counter++;
}
您可以使用基于linq的解决方案 例如:
var list = new List<String>();
list.Add("A");
list.Add("B");
list.Add("C");
String first = list.First();
String last = list.Last();
List<String> middle_elements = list.Skip(1).Take(list.Count - 2).ToList();
您可以使用基于linq的解决方案 例如:
var list = new List<String>();
list.Add("A");
list.Add("B");
list.Add("C");
String first = list.First();
String last = list.Last();
List<String> middle_elements = list.Skip(1).Take(list.Count - 2).ToList();
如果您的列表只有1个元素,会发生什么情况?这是一个非常特殊的情况,在使用上述示例之前必须进行预检查!如果您的列表只有1个元素,会发生什么情况?这是一个非常特殊的情况,在使用上述示例之前必须进行预检查!