我只想从中获取first
和last
值List<string>
。
List<String> _ids = ids.Split(',').ToList();
上面的代码给了我所有,
的分隔值
(aaa,bbb,ccc,ddd,)
我只需要获取并显示第一个和最后一个值,我该怎么做?
output aaa,ddd
我试过了first
,last
但我想消除,
字符串末尾的那个:(
我只想从中获取first
和last
值List<string>
。
List<String> _ids = ids.Split(',').ToList();
上面的代码给了我所有,
的分隔值
(aaa,bbb,ccc,ddd,)
我只需要获取并显示第一个和最后一个值,我该怎么做?
output aaa,ddd
我试过了first
,last
但我想消除,
字符串末尾的那个:(
您可以将List<string>
其用作数组;
List<string> _ids = new List<string>() { "aaa", "bbb", "ccc", "ddd" };
var first = _ids[0]; //first element
var last = _ids[_ids.Count - 1]; //last element
使用 LINQ,您可以使用Enumerable.First
和Enumerable.Last
方法。
List<string> _ids = new List<string>() { "aaa", "bbb", "ccc", "ddd" };
var first = _ids.First();
var last = _ids.Last();
Console.WriteLine(first);
Console.WriteLine(last);
输出将是;
aaa
ddd
这里一个DEMO
.
注意:正如 Alexander Simonov指出的那样,如果你List<string>
是空的,First()
则会Last()
抛出异常。注意FirstOrDefault()
或.LastOrDefault()
方法。
简单的答案是使用 Linq
string[] idsTemp = ids.Split(',');
List<string> _ids = new List<string> { {idsTemp.First()}, {idsTemp.Last()}};
您可能需要更复杂一点,因为如果长度为 0,将引发异常,如果长度为 1,则返回相同的值两次。
public static class StringHelper {
public List<string> GetFirstLast(this string ids) {
string[] idsTemp = ids.Split(',');
if (idsTemp.Length == 0) return new List<string>();
return (idsTemp.Length > 2) ?
new List<string> {{ idsTemp.First() }, { idsTemp.Last() }} :
new List<string> {{ idsTemp.First() }};
}
}
然后,您可以使用此扩展方法。
List<string> firstLast = ids.GetFirstLast();
编辑 - 非 Linq 版本
public static class StringHelper {
public List<string> GetFirstLast(this string ids) {
string[] idsTemp = ids.Split(',');
if (idsTemp.Length == 0) return new List<string>();
return (idsTemp.Length > 2) ?
new List<string> { {idsTemp[0] }, { idsTemp[idsTemp.Length-1] }} :
new List<string> {{ idsTemp[0] }};
}
}
编辑 - 删除尾随,
使用您可能想要做的任一前述方法,Linq 或 NonLinq。
List<string> firstLast = ids.Trim(new[]{','}).GetFirstLast();
var first = _ids.First();
var last = _ids.Last();
_ids.First()
_ids.Last()
根据“列表类”文档 http://msdn.microsoft.com/library/vstudio/s6hkc2c4.aspx
用手:
string first = null;
string last = null;
if (_ids.Count > 0)
{
first = _ids[0];
last = _ids[_ids.Count - 1];
}
通过 LINQ:
string first = _ids.FirstOrDefault();
string last = _ids.LastOrDefault();
针对 OP 的最后一条评论:
“,即将结束,因为当我发送参数时,我在每个参数之后添加,以便在 .cs 文件中它到达那里”
看起来您正在尝试从字符串数组中生成一个包含逗号分隔值的字符串。
您可以使用 来执行此操作string.Join()
,如下所示:
string[] test = {"aaaa", "bbbb", "cccc"};
string joined = string.Join(",", test);
Console.WriteLine(joined); // Prints "aaaa,bbbb,cccc"