相关疑难解决方法(0)

将列表转换为数字范围字符串

这个问题几乎与这个问题相反: C#是否内置支持解析页码字符串?

所以给定

1,3,5,6,7,8,9,10,12:
Run Code Online (Sandbox Code Playgroud)

我会输出:

1,3,5-10,12
Run Code Online (Sandbox Code Playgroud)

这是我的第一次尝试.它看起来有点像hacky,可能是我写过的最糟糕的代码.你能提出一个改进的方法吗?更好的办法吗?

static string numListToRangeStr(List<int> numList)
{
    StringBuilder retString = new StringBuilder();
    numList.Sort();

    bool inRangeFind = false;
    int firstInRange = numList[0];
    int lastNumber = firstInRange;
    bool first = true;

    for (int i = 1; i < numList.Count; i++)
    {
        if (numList[i] == (lastNumber + 1))
        {
            inRangeFind = true;
        }
        else
        {             
            if (inRangeFind)
            {
                if (!first)
                {
                    retString.Append(",");
                }
                retString.Append(firstInRange);
                retString.Append("-");
            }
            else
            {
               if (!first)
                {
                    retString.Append(",");
                }
            }

            retString.Append(lastNumber);

            firstInRange = numList[i]; …
Run Code Online (Sandbox Code Playgroud)

c# string parsing

13
推荐指数
3
解决办法
4304
查看次数

使用单引号将列表转换为字符串

我正在尝试从List创建一个字符串

这是我的代码

 List<string> SelectedSalesmen = new  List<string>();
Run Code Online (Sandbox Code Playgroud)

我正在从列表框中添加选定的销售人员

foreach (ListItem lst in lstBoxSalesmen.Items)
            {
                if (lst.Selected)
                {

                    SelectedSalesmen.Add(lst.Value);
                }
            }
Run Code Online (Sandbox Code Playgroud)

最后我将该值存储到这样的字符串中

 string SalesManCode = string.Join(",", SelectedSalesmen.ToArray());
Run Code Online (Sandbox Code Playgroud)

但我会这样

SLM001,SLM002,SLM003
Run Code Online (Sandbox Code Playgroud)

但我需要像这样的输出

'SLM001','SLM002','SLM003'
Run Code Online (Sandbox Code Playgroud)

c# asp.net list

3
推荐指数
2
解决办法
9513
查看次数

标签 统计

c# ×2

asp.net ×1

list ×1

parsing ×1

string ×1