我应该在接线员的右边写什么?
What should I write on right of the operator?
我正在尝试使用 Func<> 对列表项进行平方,并 return 对平方项列表进行平方。接线员右边应该写什么?
我应该写一个 foreach 循环来遍历列表中的项目吗?我是初学者。真是一头雾水
List<int> myintList = new List<int> { 1, 4, 5, 6 };
Func<List<int>, List<int>> SquareList = (m) =>
在您的 lambda 表达式中,m
是 List<int>
。您需要 return 另一个 List<int>
并对每个原始值应用一个操作。
您可以使用 LINQ 的 Select
to do that, and ToList
将结果转换为 List<T>
。这是 'functional' 方法,它比替代方法更清晰,因为它更侧重于 'what' 而不是 'how'.
m => m.Select(x => x * x).ToList();
有关演示,请参阅 this fiddle。为了比较,命令式替代可能会这样写:
Func<List<int>, List<int>> SquareListImperative = source =>
{
var results = new List<int>();
foreach (var item in source)
{
results.Add(item * item);
}
return results;
};
如果您是初学者,您应该阅读 Linq。它会让您的生活轻松 100 倍,更有趣。
List<int> myintList = new List<int> { 1, 4, 5, 6 };
var squareList = myintList.Select(i => Math.Sqrt(i));
你可以试试
Func<List<int>, List<int>> SquareList = (m) => m.Select(val => val * val).ToList();
这么多实现方式..要考虑的一点是数据量驱动的正确选择
var sqlst = myintList.ConvertAll<int>(t => t * t);
仍然出于某种原因,如果您需要 Func 其他方法..
List<int> myintList = new List<int> { 1, 4, 5, 6 };
Func<List<int>, List<int>> SquareList = (m) =>
{
return m.ConvertAll(x => x * x);
};
var tt = SquareList(myintList);
我正在尝试使用 Func<> 对列表项进行平方,并 return 对平方项列表进行平方。接线员右边应该写什么? 我应该写一个 foreach 循环来遍历列表中的项目吗?我是初学者。真是一头雾水
List<int> myintList = new List<int> { 1, 4, 5, 6 };
Func<List<int>, List<int>> SquareList = (m) =>
在您的 lambda 表达式中,m
是 List<int>
。您需要 return 另一个 List<int>
并对每个原始值应用一个操作。
您可以使用 LINQ 的 Select
to do that, and ToList
将结果转换为 List<T>
。这是 'functional' 方法,它比替代方法更清晰,因为它更侧重于 'what' 而不是 'how'.
m => m.Select(x => x * x).ToList();
有关演示,请参阅 this fiddle。为了比较,命令式替代可能会这样写:
Func<List<int>, List<int>> SquareListImperative = source =>
{
var results = new List<int>();
foreach (var item in source)
{
results.Add(item * item);
}
return results;
};
如果您是初学者,您应该阅读 Linq。它会让您的生活轻松 100 倍,更有趣。
List<int> myintList = new List<int> { 1, 4, 5, 6 };
var squareList = myintList.Select(i => Math.Sqrt(i));
你可以试试
Func<List<int>, List<int>> SquareList = (m) => m.Select(val => val * val).ToList();
这么多实现方式..要考虑的一点是数据量驱动的正确选择
var sqlst = myintList.ConvertAll<int>(t => t * t);
仍然出于某种原因,如果您需要 Func 其他方法..
List<int> myintList = new List<int> { 1, 4, 5, 6 };
Func<List<int>, List<int>> SquareList = (m) =>
{
return m.ConvertAll(x => x * x);
};
var tt = SquareList(myintList);