将foreach循环更改为lambda

Kas*_*sen 1 c# linq lambda

可能重复:
C#语法 - Lambda表达式示例 - ForGeach()通用列表

我想简化我的代码并将其更改为更短且仍然可读的代码.

List<string> onlineModelsNumbers = new List<string>();

foreach (OnlineModel om in OnlineModels)
    onlineModelsNumbers.Add(om.model_id.ToString());
Run Code Online (Sandbox Code Playgroud)

在这里,我正在考虑在lambda表达式中编写相同的东西.但是我该怎么做?

List<string> onlineModelsNumbersL = onlineModelsNumbers.ForEach(...)
Run Code Online (Sandbox Code Playgroud)

要么

List<string> onlineModelsNumbersL = new List<string>(onlineModelsNumbers.ForEach(...))
Run Code Online (Sandbox Code Playgroud)

还有其他建议吗?

Iro*_*n84 5

List<string> onlineModelsNumbers = OnlineModels.Select(om => om.model_id.ToString()).ToList();
Run Code Online (Sandbox Code Playgroud)

  • 如果需要List <string>,则需要调用ToList(). (2认同)