输入字符串格式不正确 [英] Input string was not a correct format

查看:93
本文介绍了输入字符串格式不正确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

代码:

public bool SharedUsers(string strPermission,int userId)

{

string sharedUsers =;

bool isShared = false;

if(strPermission ==|| strPermission == null)

{

isShared = false;

}

else

{

JObject objParam = JObject.Parse(strPermission);

JToken aggregateToken = objParam.SelectToken(specificUsers);



foreach(在aggregateToken中的var项目)

{

sharedUsers + = item.SelectToken(users)。值< string>()+,;

}



if(sharedUsers!= string.Empty)

{

sharedUsers = sharedUsers.TrimEnd(',')。TrimStart (',');

if(sharedUsers!=)

{

int [] arrUsers = sharedUsers.Split(', ')。选择(x => 。Convert.ToInt32(X))ToArray的(); //这里发生了错误

isShared =(arrUsers.Contains(userId)|| arrUsers.Any(x => AppSession.User.UserGroups.Contains(x)));

}

}

}



返回isShared;

}



我尝试了什么:



输入字符串不是发生了正确的格式错误

code:
public bool SharedUsers(string strPermission, int userId)
{
string sharedUsers = "";
bool isShared = false;
if (strPermission == "" || strPermission == null)
{
isShared = false;
}
else
{
JObject objParam = JObject.Parse(strPermission);
JToken aggregateToken = objParam.SelectToken("specificUsers");

foreach (var item in aggregateToken)
{
sharedUsers += item.SelectToken("users").Value<string>() + ",";
}

if (sharedUsers != string.Empty)
{
sharedUsers = sharedUsers.TrimEnd(',').TrimStart(',');
if (sharedUsers != "")
{
int[] arrUsers = sharedUsers.Split(',').Select(x => Convert.ToInt32(x)).ToArray(); //here the error is occured
isShared = (arrUsers.Contains(userId) || arrUsers.Any(x => AppSession.User.UserGroups.Contains(x)));
}
}
}

return isShared;
}

What I have tried:

Input string was not a correct format error occured

推荐答案

您可以使用以下解决方案,如果字符串包含空,则它将自动从列表中删除。这是工作示例。



You can use following solution, if the string contains empty then it will automatically removed from the list. This is working example.

string sharedUsers = "1,2,3,5,4,5,6,7,8,10,";
int[] arrUsers = sharedUsers.Split(new string[] { "," }, System.StringSplitOptions.RemoveEmptyEntries).Select(x => System.Convert.ToInt32(x)).ToArray();





问候,

Imdadhusen



Regards,
Imdadhusen


然后很明显,逗号分隔字符串中的一个值不是整数。

使用调试器,查看输入字符串,看看是否可以找出哪一个。然后开始查看 sharedUsers 的来源,并找出原因并不符合你的想法。



我们不能为您做任何事情 - 我们没有您的代码,我们没有您的数据,如果我们这样做,我们就无法运行它!
Then clearly one of the values in your comma delimited string is not an integer.
Use the debugger, look at your input string and see if you can work out which one. Then start looking at where sharedUsers comes from, and work out why it isn't what you think it is.

We can't do any of that for you - we don't have your code, we don't have your data, and we couldn't run it if we did!


这篇关于输入字符串格式不正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆