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

如何从Regex.Split中获取Dictionary <int,ClassA>

如何解决如何从Regex.Split中获取Dictionary <int,ClassA>

|| 我有一个带有一些公共属性
classA
,并重写了
Tosstring
方法来连接这些属性中的字符串。它也有一个返回int键的属性。 我在用
string str = value1 + value2 + value3; 
每个值具有#0个独立的属性
string[] values = Regex.Split(str,\'#\');

foreach(classA value in values)
{
    dictionary.add(value.key,value);
}
这很好 ================================================== =================== 对于这种情况,我想使用
values.ToDictionary
有人可以建议如何使用吗?     

解决方法

在我看来,您可能真正想要的是从类中获取属性,然后将其转换为字典中的键值对。 如果这就是您要执行的操作,则Class-> String-> Array-> Dictionary将花费很长的路要走。 如果是这种情况,也许您想尝试一种更直接的方法 给定这样的课程
 class classA
    { 
        public string Name{get;set;}
        public string  website { get; set; }
        public string location { get; set; }
        public int age { get; set; }
        public int reputation { get; set; }

        private string somthingPrivate { get; set; }


    }
下面创建一个名为result的字典变量。
classA test = new classA() { Name = \"Jeff Atwood\",website = \"codinghorror.com/blog\",location = \"El Cerrito,CA\",age = 40,reputation = 15653 };


var result = test.GetType().GetProperties().ToDictionary(property => property.Name,property => property.GetValue(test,null),StringComparer.OrdinalIgnoreCase);

foreach (var key in result.Keys)
    Console.WriteLine(\"{0} : {1}\",key,result[key]);
并输出
Name : Jeff Atwood
website : codinghorror.com/blog
location : El Cerrito,CA
age : 40
reputation : 15653
Press any key to continue . . .
    ,听起来您想要一些类似的东西:
Regex.Split(str,\'#\')
.Select(s => new ClassA(s))
.ToDictionary(value => value.Key);
这将采用从
Split
返回的每个字符串,以某种方式将其转换为
ClassA
(您的问题中缺少该部分),并返回一个字典,其中的键全部来自
ClassA
实例,而值本身就是实例。     

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