本文整理汇总了C#中System.Linq.Aggregate方法的典型用法代码示例。如果您正苦于以下问题:C# System.Linq.Aggregate方法的具体用法?C# System.Linq.Aggregate怎么用?C# System.Linq.Aggregate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Linq
的用法示例。
在下文中一共展示了System.Linq.Aggregate方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BreakUpCamelCase
public static string BreakUpCamelCase(string fieldName)
{
var patterns = new[]
{
"([a-z])([A-Z])",
"([0-9])([a-zA-Z])",
"([a-zA-Z])([0-9])"
};
var output = patterns.Aggregate(fieldName,
(current, pattern) => Regex.Replace(current, pattern, "$1 $2", RegexOptions.IgnorePatternWhitespace));
return output.Replace('_', ' ');
}
示例2: Test
//.........这里部分代码省略.........
new { Group = (string)null, Min = 3000 }
};
assert.DeepEqual(groupedMin, groupedMinExpected, "Min() within group");
// TEST
var groupedMinWithLet = (from p in Person.GetPersons()
group p by p.Group into g
let minCount = g.Min(x => x.Count)
select new { Group = g.Key, Name = g.Where(x => x.Count == minCount).Select(x => x.Name).ToArray() })
.ToArray();
var groupedMinWithLetExpected = new object[] {
new { Group = "A", Name = new[]{ "Frank"} },
new { Group = "C", Name = new[]{ "Zeppa"} },
new { Group = "B", Name = new[]{ "Dora"} },
new { Group = (string)null, Name = new[]{ "Nemo"} }
};
assert.DeepEqual(groupedMinWithLet, groupedMinWithLetExpected, "Min() within group with let");
// TEST
int maxNum = numbers.Max();
assert.DeepEqual(maxNum, 5, "Max() number");
// TEST
int longestWordLength = words.Max(w => w.Length);
assert.DeepEqual(longestWordLength, 5, "Max() for longest word");
// TEST
var groupedMax = (from p in Person.GetPersons()
group p by p.Group into g
select new { Group = g.Key, Max = g.Max(x => x.Count) })
.ToArray();
var groupedMaxExpected = new object[] {
new { Group = "A", Max = 300 },
new { Group = "C", Max = 500 },
new { Group = "B", Max = 700 },
new { Group = (string)null, Max = 3000 }
};
assert.DeepEqual(groupedMax, groupedMaxExpected, "Max() within group");
// TEST
var groupedMaxWithLet = (from p in Person.GetPersons()
group p by p.Group into g
let maxCount = g.Max(x => x.Count)
select new { Group = g.Key, Name = g.Where(x => x.Count == maxCount).Select(x => x.Name).ToArray() })
.ToArray();
var groupedMaxWithLetExpected = new object[] {
new { Group = "A", Name = new[]{ "Frank"} },
new { Group = "C", Name = new[]{ "Billy"} },
new { Group = "B", Name = new[]{ "John", "Mary"} },
new { Group = (string)null, Name = new[]{ "Nemo"} }
};
assert.DeepEqual(groupedMaxWithLet, groupedMaxWithLetExpected, "Max() within group with let");
// TEST
double averageNum = numbers.Average();
assert.DeepEqual(averageNum, 2.125, "Average() number");
// TEST
var averageWordLengths = new[] { "1", "22", "333", "4444", "55555" };
double averageWordLength = averageWordLengths.Average(w => w.Length);
assert.DeepEqual(averageWordLength, 3, "Average() for word lengths");
// TEST
var groupedAverage = (from p in Person.GetPersons()
group p by p.Group into g
select new { Group = g.Key, Average = g.Average(x => x.Count) })
.ToArray();
var groupedAverageExpected = new object[] {
new { Group = "A", Average = 300 },
new { Group = "C", Average = 300 },
new { Group = "B", Average = 500 },
new { Group = (string)null, Average = 3000 }
};
assert.DeepEqual(groupedAverage, groupedAverageExpected, "Average() within group");
// TEST
var doublesForAggregate = new[] { 1.0, 2.0, 3.0, 4.0, 5.0 };
double product = doublesForAggregate.Aggregate((runningProduct, nextFactor) => runningProduct * nextFactor);
assert.DeepEqual(product, 120, "Aggregate() within doubles");
// TEST
var startBalance = 100.0;
var attemptedWithdrawals = new[] { 20, 10, 40, 50, 10, 70, 30 };
var endBalance =
attemptedWithdrawals.Aggregate(startBalance,
(balance, nextWithdrawal) =>
((nextWithdrawal <= balance) ? (balance - nextWithdrawal) : balance));
assert.DeepEqual(endBalance, 20, "Aggregate() balance");
}