如何使用C#选择列表中的第二个字符串?

如何使用C#选择列表中的第二个字符串?,c#,string,list,C#,String,List,我有一段代码,有时候只有一个字符串,有时候有两个。基本上,当它有两个字符串时,我希望能够选择第二个字符串,因为此时它正在选择列表中的第一个字符串。 这是我的代码: List<string> workGroupIdStringValues = new List<string>(); workGroupIdStringValues = (List<string>)session["WorkGroupIds"]; List<Guid> workGroup

我有一段代码,有时候只有一个字符串,有时候有两个。基本上,当它有两个字符串时,我希望能够选择第二个字符串,因为此时它正在选择列表中的第一个字符串。
这是我的代码:

List<string> workGroupIdStringValues = new List<string>();
workGroupIdStringValues = (List<string>)session["WorkGroupIds"];
List<Guid> workGroupIds = workGroupIdStringValues.ConvertAll<Guid>(workGroupIdStringValue => new Guid(workGroupIdStringValue));
List workGroupIdStringValues=new List();
workGroupIdStringValues=(列表)会话[“WorkGroupIds”];
List workGroupIds=workGroupIdStringValue.ConvertAll(workGroupIdStringValue=>newguid(workGroupIdStringValue));
所以“workGroupIdStringValues”有时会有第二个字符串,当有两个字符串时,如何选择第二个而不是第一个。有可能吗?如果有,怎么办?

谢谢

使用LINQ的
工作组idStringValue.Last()
放弃除最后一个字符串以外的所有字符串;如果只有一个字符串,就可以了

更新:当然,您必须稍微调整代码:

var workGroupId = new Guid(((List<string>)session["WorkGroupIds"]).Last());
var workGroupId=新Guid(((列表)会话[“workGroupId”]).Last();
怎么样

string workGroupIdStringValue = ((List<string>)session["WorkGroupIds"]).Last();
string workGroupIdStringValue=((列表)会话[“WorkGroupIds”]).Last();

有几种方法可以做到这一点,我认为最好的方法是

workGroupIdStringValues.Count将为您提供对象的总数,以及

workGroupIdStringValues[1]
将返回列表中的第二个条目

大概是

if(workGroupIdStringValues.Count() > 1)
     mystring = workGroupIdStringValues[1];
else
     mystring = workGroupIdStringValues[0];
而不是

List<Guid> workGroupIds = workGroupIdStringValues.ConvertAll<Guid>(workGroupIdStringValue => new Guid(workGroupIdStringValue));

当然,您可以将其组合为
workingGroupIdStringValues.Take(2).Last()
如果您不希望第三个值出现,请抱歉,这似乎不起作用,im GENT无法隐式转换为string@Ben:请查看更新。你不能简单地
.Last()
到你现有的代码中,表达式的类型会改变。很抱歉,这似乎也不起作用,我无法再次隐式转换为字符串,因为这是一个列表,我将使用
Count
而不是LINQ的
Count()
当我的列表中有两个字符串时,这种方法会起作用,但当只有一个字符串时,它会出错
Guid workGroupId = new Guid(workGroupIdStringValues[workGroupIdStringValues.Count-1]));