我希望first
只获得last
和List<string>
个值。
List<String> _ids = ids.Split(',').ToList();
上面的代码为我提供了所有,
分隔值
(aaa,bbb,ccc,ddd,)
我需要拍摄并仅显示第一个和最后一个值,我该怎么做?
output aaa,ddd
我尝试使用first
和last
,但我希望消除字符串末尾的,
:(
答案 0 :(得分:4)
您可以将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 pointed,如果您的List<string>
为空,则First()
和Last()
会抛出异常。请注意FirstOrDefault()
或.LastOrDefault()
方法。
答案 1 :(得分:4)
简单的答案是使用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();
答案 2 :(得分:0)
var first = _ids.First();
var last = _ids.Last();
答案 3 :(得分:0)
_ids.First()
_ids.Last()
根据“List-Class”文档 http://msdn.microsoft.com/library/vstudio/s6hkc2c4.aspx
答案 4 :(得分:0)
用手:
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();
答案 5 :(得分:0)
回应OP的最后评论:
“,即将结束,因为当我发送我添加的参数时,在每个参数之后,以便在.cs文件中它会到达那里”
看起来您正在尝试从字符串数组生成包含逗号分隔值的字符串。
您可以使用string.Join()
执行此操作,如下所示:
string[] test = {"aaaa", "bbbb", "cccc"};
string joined = string.Join(",", test);
Console.WriteLine(joined); // Prints "aaaa,bbbb,cccc"