2017-01-23 44 views
0

在瀏覽器上運行該頁面後,我得到:輸入字符串格式不正確。輸入字符串格式不正確(c#)

List<int> TheGroupIds = new List<int>(); 
if (Request.QueryString["MultiAssignInteractionGrouIds"] != null 
    && Request.QueryString["MultiAssignInteractionGrouIds"] != "" 
    && Request.QueryString["MultiAssignInteractionGrouIds"] != "-2") 
{ 
    string GroupIds = Request.QueryString["MultiAssignInteractionGrouIds"]; 
    TheGroupIds = GroupIds.Split(',').Select(int.Parse).ToList(); <= 'The error is HERE' 
    TheGroupIds = TheGroupIds.Distinct().ToList(); 
} 
+2

你可以發表該數據源嗎? – NicoRiff

+3

「拆分」GroupId之一不是有效的整數值,或者爲空。 – stuartd

+1

什麼是Request.QueryString [「MultiAssignInteractionGrouIds」]; ? –

回答

0

只有調試知道,但也許你有類似的值"1,2,,3,4",然後用這個Split

string groupIds = Request.QueryString["MultiAssignInteractionGrouIds"]; 
if (!string.IsNullOrEmpty(groupIds) && groupIds != "-2") 
{ 
    TheGroupIds = groupIds.Split(new[]{ ','}, StringSplitOptions.RemoveEmptyEntries) 
    .Select(int.Parse) 
    .Distinct() 
    .ToList(); 
} 
+0

即使存在[前導或尾隨空格](https://msdn.microsoft.com/en-us/library/b3h1hf19(v = vs.110).aspx#Anchor_2),'int.Parse'也可以工作。 – juharr

0

串不僅包含intgeres。你可以過濾你的文字或者使用這個轉換器:

public static int? ToNullableInt(this string s) 
{ 
    int i; 
    if (int.TryParse(s, out i)) return i; 
    return null; 
} 

而過濾器可以爲空值。用法:

var result = text.Split(';').Select(x => x.ToNullableInt()).Where(y => y != null).ToList();