【问题标题】:Last item in the c# listc# 列表中的最后一项
【发布时间】:2013-04-07 11:02:47
【问题描述】:

我需要突出显示文章中的关键字或标签并将变量传递给 jQuery Array 我正在使用属性将值从 C# 传递到 java-script 我还需要格式化存储在数据库中的关键字,如 one, two, three, four, five,six,seven

为了使其工作,我必须将每个关键字包装在单个 ' 或双引号" 中。

JQuery

    function HighlightKeywords(keywords) {
        var el = $("body");
        $(keywords).each(function () {
            var pattern = new RegExp("(" + this + ")", ["gi"]);
            var rs = "<a href='search.aspx?search=$1'<span style='background-color:#FFFF00;font-weight: bold;background-color:#FFFF00;'>$1</span></a>";
            el.html(el.html().replace(pattern, rs));
        });
    }

HighlightKeywords(["<%= MyProperty %>]");

C#代码

string _sFinalList = null;

protected string MyProperty { get { return _sFinalList; } }
string sKewords = "one, two, three, four, five,six,seven";

List<string> lstKewords = sKewords.Split(',').ToList();
foreach (string list in lstKewords) // Loop through List with foreach
{
   _sFinalList += "'" + list + "',";

}

此代码的问题是它在最后一句话之后广告, 我想知道避免在最后一句话之后添加, 的最佳方法是什么

当前输出:“‘一’、‘二’、‘三’、‘四’、‘五’、‘六’、‘七’,”

所需的输出:“‘一’、‘二’、‘三’、‘四’、‘五’、‘六’、‘七’”

感谢您提供这方面的帮助

【问题讨论】:

    标签: c# arrays list


    【解决方案1】:

    在 C# 中,使用 String.Join()

    List<string> lstKeywords = sKeywords.Split(',').ToList();
    
    var quotedKeywords = lstKeywords.Select(s => "'" + s + "'");
    
    string _sFinalList = string.Join(",", quotedKeywords);
    

    【讨论】:

    • Join() 解决了你最后一个不同的问题。 Select() 是一个 Linq 运算符,用于创建中间结果。
    【解决方案2】:

    您可以使用String.Join()

    string sKewords = "one, two, three, four, five,six,seven";
    List<string> lstKewords = sKewords.Split(',').ToList();
    var _partial = lstKewords.Select(x => "'" + x + "'");
    Var _result = String.Join(",", _partial);
    

    【讨论】:

    • 它给了我相同的输出"one, two, three, four, five,six,seven"
    • 你修复了它现在缺少var _partial = lstKewords.Select(x =&gt; "'" + x + "'");
    • 抱歉错字。 Select() 是一种 linq 扩展方法。它使用 lambda 将每个元素用引号括起来。 linq 的结果是一个可枚举的,然后传递给String.Join(),它连接每个元素。
    【解决方案3】:

    你可以使用String.Join

    var result = string.Format("'{0}'", string.Join("','", yourList));
    

    【讨论】:

    • 正确,但获取外部引号的方式有点“棘手”。
    【解决方案4】:

    在完成 for 循环后,您可以简单地删除带有字符串类的子字符串函数的 lastIndexOf(",")。

    您可以在 for 循环中添加 if 语句,如果循环不在其最后一次迭代中,则添加 ","。

    【讨论】:

      猜你喜欢
      • 2017-08-28
      • 1970-01-01
      • 2021-07-30
      • 2017-01-14
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 2013-08-05
      • 2013-11-12
      相关资源
      最近更新 更多