簡體   English   中英

如何使用 Linq 更改字符串中的特定字符

[英]How to change a specific Character in String using Linq

我有一個這樣的字符串結構:

Exec Test @totalRows = 10 ,@DateCriteria = 'nd',@NDays = -7 ,@GroupIds = '3,4,6,7',@OrderBy = 'DESC'

我正在嘗試使用任何單個值(如 3 或 45 或 65 等'3,4,6,7'更改'3,4,6,7''3,4,6,7'可以是 n 個逗號分隔的 N 個數字,如'1,2,3,45,33,111,33' 這些基本上是ID。 我想用一個值來改變它們。 所以我需要的字符串會變成這樣:

Exec Test @totalRows = 10 ,@DateCriteria = 'nd',@NDays = -7 ,@GroupIds = '455',@OrderBy = 'DESC'

455只是一個例子,它可以是任何整數值。

到目前為止,我已經在沒有 Linq 的情況下嘗試過這個

string[] tempQuery = query.Split(',');

for (int i = 0; i < tempQuery.Length; i++)
{
    if (tempQuery[i].Contains("@GroupIds"))
        myQuery = myQuery + ",@GroupIds = '" + ddlTeams.SelectedValue + "'";
    else
        myQuery = myQuery + "," + tempQuery[i];
}

您可以使用正則表達式輕松完成此操作。

Regex.Replace(your string,@"(?<=')(\d,?)+(?=')","455")

我不知道您為什么為此使用 LINQ。 但是正則表達式更適合這些目的。
編輯:看起來您只需要更改 GroupId。 在這種情況下,您可以像這樣修改正則表達式模式:

@"(?<=@GroupIds = ')(\d,?)+(?=')"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM