C# 如果布尔值为false,则在字符串中添加逗号和其他单词
我有3个布尔人:C# 如果布尔值为false,则在字符串中添加逗号和其他单词,c#,string,C#,String,我有3个布尔人: bool Boat, Plane, Car; 和3个字符串: string ReloadBoat, ReloadPlane, ReloadCar; 根据这些布尔值,如果为false,我需要在字符串和单词之间以及最后两个字符串之间添加逗号 string errorMessage = (Boat ? "" : " " + ReloadBoat + ", ") + (Plane ? "" : " " + ReloadPlane + ", ") + (Car ? "" : " "
bool Boat, Plane, Car;
和3个字符串:
string ReloadBoat, ReloadPlane, ReloadCar;
根据这些布尔值,如果为false,我需要在字符串和单词之间以及最后两个字符串之间添加逗号
string errorMessage = (Boat ? "" : " " + ReloadBoat + ", ") + (Plane ? "" : " " + ReloadPlane + ", ") + (Car ? "" : " " + ReloadCar);
errorMessage = errorMessage.TrimEnd(new[] { ' ', ',' });
对于上面的问题,我得到的是,如果船和飞机都是假的,我得到的错误消息是ReloadBoat,ReloadPlane
我希望它是重新装载的船和飞机
如果所有3个布尔值都为false,则错误消息应为:
重新装载船只、重新装载飞机和重新装载汽车。您可以在代码中使用此解决方案注释: 字符逗号=','; 字符串errorMessage=船?:+重装船+逗号+平面?:+重载平面+逗号+汽车?:+换装车+逗号; //首先修剪最后一个逗号 errorMessage=errorMessage.TrimEndcomma; //然后将最后一个分隔逗号替换为“and” int place=errorMessage.LastIndexOfcomma; //仅当找到逗号时 如果位置>=0 errorMessage=errorMessage.Removeplace、1.Insertplace和;
您可以在代码中使用此解决方案注释: 字符逗号=','; 字符串errorMessage=船?:+重装船+逗号+平面?:+重载平面+逗号+汽车?:+换装车+逗号; //首先修剪最后一个逗号 errorMessage=errorMessage.TrimEndcomma; //然后将最后一个分隔逗号替换为“and” int place=errorMessage.LastIndexOfcomma; //仅当找到逗号时 如果位置>=0 errorMessage=errorMessage.Removeplace、1.Insertplace和; 输出:
ReloadBoat and ReloadPlane
输出:
ReloadBoat and ReloadPlane
您可以有条件地填充一个列表,然后使用一行创建消息,以这种方式允许添加其他项
// start with a list
var errItems = new List<string>();
if (boat) errItems.Add(reloadBoat);
if (plane) errItems.Add(reloadPlane);
if (car) errItems.Add(reloadCar);
// make the error message
var errMsg =
errItems.Count > 1 ?
$"{string.Join(", ", errItems.ToArray(), 0, errItems.Count - 1)} and {errItems[errItems.Count - 1]}" :
errItems.Count > 0 ? errItems[0] : "";
您可以有条件地填充一个列表,然后使用一行创建消息,以这种方式允许添加其他项
// start with a list
var errItems = new List<string>();
if (boat) errItems.Add(reloadBoat);
if (plane) errItems.Add(reloadPlane);
if (car) errItems.Add(reloadCar);
// make the error message
var errMsg =
errItems.Count > 1 ?
$"{string.Join(", ", errItems.ToArray(), 0, errItems.Count - 1)} and {errItems[errItems.Count - 1]}" :
errItems.Count > 0 ? errItems[0] : "";
您可以创建一个列表来保存所有错误字符串
List<string> msgs = new List<string>();
if(!Boat)
msgs.Add(ReloadBoat);
if(!Plane)
msgs.Add(ReloadPlane);
if(!Car)
msgs.Add(ReloadCar);
您可以创建一个列表来保存所有错误字符串
List<string> msgs = new List<string>();
if(!Boat)
msgs.Add(ReloadBoat);
if(!Plane)
msgs.Add(ReloadPlane);
if(!Car)
msgs.Add(ReloadCar);
如果您只有3个布尔值及其字符串,那么如果您只使用switch语句或表驱动方法,代码可能会更清晰,请参见示例字符串。Join帮助您如果您只有3个布尔值及其字符串,如果您只使用switch语句或表驱动方法,代码可能会更清晰,请参阅以获取示例String.Join帮助您