日期:2014-05-18  浏览次数:20763 次

新手请教:字符串,转换后,如何相加
字符串

string str = "164238752901402"

逐个判断每个字符,如果是“大于4”的就相加

答案是:6+8+7+5+9 = 35


这个该如何写呢?

------解决方案--------------------
C# code

var dictionary = "56789".ToDictionary(c => c, c => c - (char)'0');
            decimal sum = "164238752901402".Sum(c =>
                                                         {
                                                             int v;
                                                             int i = dictionary.TryGetValue(c, out v) ? v : 0;
                                                             return i;
                                                         });

------解决方案--------------------
string str = "164238752901402";

int result = str.Select(x => x - '0').Where(x => x > 4).Sum();