如何构建含变量的字符串并自动剔除值为0的变量项
一行代码实现变量值为0时自动剔除对应内容
可以结合LINQ的过滤、映射,再配合字符串插值和拼接来实现,不用写大量if判断:
int apples = 5; int oranges = 8; int bananas = 0; string result = $"I got {string.Join(", ", new[] { (apples, "apples"), (oranges, "oranges"), (bananas, "bananas") }.Where(item => item.Item1 != 0).Select(item => $"{item.Item1} {item.Item2}"))}.";
逻辑说明
- 用元组数组将每个水果的数值和名称绑定,后续新增水果时直接在数组里添加
(数值, "名称")即可 Where(item => item.Item1 != 0):过滤掉数值为0的项Select(item => $"{item.Item1} {item.Item2}"):把有效项格式化为"数量 名称"的字符串string.Join(", ", ...):用逗号加空格拼接所有有效内容- 最后通过$插值把拼接结果嵌入主句子
执行后输出:I got 5 apples, 8 oranges.
内容的提问来源于stack exchange,提问作者Netroshin
相关产品推荐
相关产品推荐

