【发布时间】:2020-06-15 04:35:57
【问题描述】:
我正在尝试通过给定命令从列表中删除字符串。 该命令是删除所有以给定字符串开头或结尾的字符串。
列表输入 = new List() {"Pesho", "Misho", "Stefan"};
string command = "删除 StartsWith P";或“删除 EndsWith P”
我正在尝试使用 lambda。像这样的:
input.RemoveAll(x =>
{
if (command[1] == "StartsWith")
x.StartsWith(command[2]);
else if (command[1] == "EndsWith")
x.EndsWith(command[2]);
});
编译器说: 并非所有代码路径都返回 Predicate 类型的 lambda 表达式中的值
我在问是否有可能在一个 lambda 中做到这一点, 或者我必须为这两种情况都写。
【问题讨论】:
-
使用以下 : (command[1] == "StartsWith")? x.StartsWith(command[2]) : (command[1] == "EndsWith") ? x.EndsWith(command[2]) : "在此处添加缺失值";