在 C# 中,=> 是 lamada 运算符,可读为“goes to”
输入一个表示整型的字符串列表,并返回一个列表,包含其中偶数的平方,并且需要按照平方后的结果排序”。
原:
static List<int> GetSquaresOfPositive(List<string> strList)
{
List<int> intList = new List<int>();
foreach (var s in strList) intList.Add(Int32.Parse(s));
List<int> evenList = new List<int>();
foreach (int i in intList)
{
if (i % 2 == 0) evenList.Add(i);
}
List<int> squareList = new List<int>();
foreach (int i in evenList) squareList.Add(i * i);
squareList.Sort();
return squareList;
}
lamada:
static List<int> GetSquaresOfPositiveByLambda(List<string> strList)
{
return strList
.Select(s => Int32.Parse(s)) // 转成整数
.Where(i => i % 2 == 0) // 找出所有偶数
.Select(i => i * i) // 算出每个数的平方
.OrderBy(i => i) // 按照元素自身排序
.ToList(); // 构造一个List
}
要求算一任意长度字符串中不同的字符以及它的个数。
C# code var values = (from s in "abcdefgabc"
group s by s into g
select String.Format("{0}, {1}", g.Key, g.Count())).ToArray();
或
var values = "abcdefgabc"
.GroupBy(c => c)
.Select(g => String.Format("{0}, {1}", g.Key, g.Count()))
.ToArray();
Array.ForEach(values, v => Console.WriteLine(v));