如何从C#中的字符串中获取字符串的子字符串?
问题描述:
我有一个名称,值对存储在字典中的两个字符串。如何从C#中的字符串中获取字符串的子字符串?
e.g.,
Name | Value |
-------------------------
Dim1L9 | 10.98 |
-------------------------
Dim14L10 | 26.32 |
-------------------------
Dim14L11 | 95.25 |
-------------------------
Dim1L10 | 9.99 |
从这个表我想获得DIM1 10.98 + 9.99 = 20.97的总和。我怎样才能做到这一点?
答
以防万一你想和所有的名字:
var regex = new Regex(@"^[a-zA-Z]+(\d+)L\d+$");
var sumByDimension = from kvp in dictionary
let match = regex.Match(kvp.Key)
where match.Success
group kvp by match.Groups[1].Value into g
select new
{
Dimension = g.Key,
Sum = g.Sum(kvp => kvp.Value)
};
输出:
{ Dimension: "1", Sum: 20.97 }
{ Dimension: "14", Sum: 121.57}
'data.Where(X => x.Key.StartsWith( “Dim1L”)) .Sum(x => x.Value)' – haim770
太好了。这很有用,谢谢。 – Abe
@ haim770 - 你给了我一个全新的视角。谢谢。 – Abe