2012-10-29 51 views
0

我有這個代碼,它有時只是有一個字符串,有時有兩個。基本上,當它有兩個字符串時,我希望能夠選擇第二個字符串,因爲它正在選擇列表中的第一個字符串。
這裏是我的代碼:
如何使用C#選擇列表中的第二個字符串?

List<string> workGroupIdStringValues = new List<string>(); 
workGroupIdStringValues = (List<string>)session["WorkGroupIds"]; 
List<Guid> workGroupIds = workGroupIdStringValues.ConvertAll<Guid>(workGroupIdStringValue => new Guid(workGroupIdStringValue)); 

所以「workGroupIdStringValues」有時有第二個串,我怎麼能選擇第二個,而不是第一個當兩個字符串。如果可以的話,是否有可能如何?
謝謝

回答

9

使用LINQ的workGroupIdStringValues.Last()放棄所有字符串,但最後一個;如果只有一個字符串,它將正常工作。

更新:然後,當然,你必須適應有點代碼:

var workGroupId = new Guid(((List<string>)session["WorkGroupIds"]).Last()); 
+1

當然,你可以結合這爲'workingGroupIdStringValues.Take(2)。去年( )'如果你不想要第三個值,如果它存在 –

+0

對不起,這似乎沒有工作,即時獲取cann ot隱式地將轉換爲字符串 – Ben

+0

@Ben:請參閱更新。你不能簡單的'.Last()'到你現有的代碼中,表達式的類型就會改變。 – Jon

0

如何

string workGroupIdStringValue = ((List<string>)session["WorkGroupIds"]).Last(); 
+0

很抱歉,這似乎沒有任何工作,即時得到不能隱式轉換串再次 – Ben

0

有這樣做的幾種方法,我認爲最好的是要做

workGroupIdStringValues.Count會給你的物品總量,和

workGroupIdStringValues[1]將返回列表中的第二個條目。

因此,像

if(workGroupIdStringValues.Count() > 1) 
    mystring = workGroupIdStringValues[1]; 
else 
    mystring = workGroupIdStringValues[0]; 
+0

因爲它是一個列表我會用'Count'而不是LINQ的'計數()' – Firo

0

而不是

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

你可以做以下

Guid workGroupId = new Guid(workGroupIdStringValues[workGroupIdStringValues.Count-1])); 
+0

這類作品,因爲它工作時,我有兩個字符串在我的列表中,但是當只有一個字符串時它會出錯 – Ben

相關問題