微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从“ 1,2,3”解析int []

如何解决从“ 1,2,3”解析int []

| 我有一个名为ID的多选下拉列表,它提交ID = 1,2,3,我需要将其解析为一个整数数组以在filter方法中执行Contains()。目前,我使用:
string[] ids = Request[\"ID\"].Split(\',\');
我真的不喜欢它,因为它比int慢比较字符串。有什么建议么?     

解决方法

Request[\"ID\"].Split(\',\').Select(x=>int.Parse(x)).ToArray();
当然,如果任何所得的数字字符串不是\“ parseable \”(是否存在这样的单词?),则将抛出此错误。     ,如果转换为整数更快或字符串比较更快,则取决于在数组中查找的次数。
HashSet<int> ids = new HashSet<int>(from s in Request[\"ID\"].Split(\',\')
                                    select int.Parse(s));
但是如果您有许多id:s,最快的方法可能是创建
HashSet<string>
HashSet<string> = new HashSet<string>(string[] ids = Request[\"ID\"].Split(\',\'));
    ,
int[] ids = Request[\"ID\"].Split(\',\').Select(Convert.ToInt32).ToArray();
    ,第一:
string[] arr = Request[\"ID\"].Split(\',\')
然后:
Array.ConvertAll(arr,s => Int32.Parse(s));
Array.ConvertAll(arr,Int32.Parse);

arr.Select(s => Int32.Parse(s));
arr.Select(Int32.Parse);
然后:
new HashSet<int>(result);
(最快执行perform9 container的容器) 也可以看看: 使用LINQ在一个字符串中将string []转换为int [] int.Parse(),int.TryParse(),Convert.Int32()中哪一个处理和转换速度更快     ,如果您没有linq,则可以:
string[] ids = Request[\"ID\"].Split(\',\');
int[] items = new int[ids.Length];
for(int i = 0; i<ids.Length; i++)
{
  items[i] = int.Parse(ids[i]);
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。