gpt4 book ai didi

c# - 从 List 创建用户可读、显示友好的格式化字符串

转载 作者:太空宇宙 更新时间:2023-11-03 18:12:14 26 4
gpt4 key购买 nike

我知道几个问题已经asked and answered关于如何从列表中创建逗号分隔的字符串。我正在就一些略有不同的事情寻求帮助。

我想做的是从 List<string> 创建一个显示友好的人类可读字符串读起来像“A、B 和C 是无效值”。字符串的语法和格式应该根据列表中的项目数而改变。该列表可以包含任意数量的项目。

例如:

List<string> myString = new List<string>() { "Scooby", "Dooby", "Doo" };
// Should return "Scooby, Dooby and Doo are invalid values."

List<string> myString = new List<string>() { "Scooby", "Dooby" };
// Should return "Scooby and Dooby are invalid values."

List<string> myString = new List<string>() { "Scooby" };
// Should return "Scooby is an invalid value."

这是我到目前为止所做的:

string userMessage = "";
foreach(string invalidValue in invalidValues)
{
userMessage = " " + userMessage + invalidValue + ",";
}

// Remove the trailing comma
userMessage = userMessage.Substring(0, userMessage.LastIndexOf(','));

if (invalidValues.Count > 1)
{
int lastCommaLocation = userMessage.LastIndexOf(',');
userMessage = userMessage.Substring(0, lastCommaLocation) + " and " + userMessage.Substring(lastCommaLocation + 1) + " are invalid values.";
}
else
{
userMessage = userMessage + " is an invalid value.";
}

是否有更好或更有效的方法来做到这一点?

最佳答案

public static string FormatList(List<string> invalidItems)
{
if(invalidItems.Count == 0) return string.Empty;
else if(invalidItems.Count == 1) return string.Format("{0} is an invalid value", invalidItems[0]);
else return string.Format("{0} and {1} are invalid values", string.Join(", ", invalidItems.Take(invalidItems.Count - 1)), invalidItems.Last());
}

关于c# - 从 List<string> 创建用户可读、显示友好的格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12589602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com