преобразовать t-sql заменить код в C # - PullRequest
1 голос
/ 15 августа 2011
RETURN (REPLACE(REPLACE(REPLACE(@input, @class_text, '~~|~'), @id_text, @class_text), '~~|~', @id_text))

где @input - строка.

Как преобразовать это в C # с теми же параметрами ...

@class_text is class_text in C#, etc..

Ответы [ 4 ]

3 голосов
/ 15 августа 2011
input = input.Replace(class_text, "~~|~").Replace(id_text, class_text).Replace("~~|~", id_text);

просто так

0 голосов
/ 15 августа 2011

Преобразовал TSQL в C #, который мог быть запрошен в исходном вопросе Как изменить позицию строкового элемента в C #

    /// <summary>
    /// Given a line of text, swap position of class and id tags.
    /// Id should always precede class tag
    /// 
    /// </summary>
    /// <param name="input"><td class="m92_t_col5" id="preis_0">xx</td></param>
    /// <returns><td id="preis_0" class="m92_t_col5">xx</td></returns>
    public static string SwapClassAndId(string input)
    {
        string output = string.Empty;
        int classOrdinal = 0;
        int classOridnalEndQuotes = 0;
        string classText = string.Empty;

        int idOrdinal = 0;
        int idOrdinalEndQuotes = 0;
        string idText = string.Empty;

        classOrdinal = input.IndexOf("class=");
        classOridnalEndQuotes = input.IndexOf("\"", classOrdinal + 7) + 1;

        idOrdinal = input.IndexOf("id=");
        idOrdinalEndQuotes = input.IndexOf("\"", idOrdinal + 4) + 1;

        if (idOrdinal < classOrdinal)
        {
            return input;
        }

        classText = input.Substring(classOrdinal, classOridnalEndQuotes - classOrdinal);
        idText = input.Substring(idOrdinal, idOrdinalEndQuotes - idOrdinal);

        output = input.Replace(classText, "~~|~").Replace(idText, classText).Replace("~~|~", idText);

        return output;
    }
0 голосов
/ 15 августа 2011

1) сделать строку

String myOldString = "No way";

2) Используйте функцию замены

String myNewString = myOldString.Replace("No", "Yes");

Вот MSDN для более подробной информации: http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx#Y480

EDIT Вот данные из вашего поста:

String myInput = "whatever @input equals"
String myclass_text = "whatever @class_text equals"
String myid_text = "whatever @id_text equals"

String myString = myInput.replace(myclass_text, "~~|~")
myString = myString.replace(myid_text, class_text)
myString = myString.replace("~~|~", myid_text)

Или все-в-одном (я не знаю, позволяет ли c # вам подобную прокрутку, но если предпочитаете однострочники, попробуйте:

String myString = myInput.replace(myclass_text, "~~|~").replace(myid_text, myclass_text).replace("~~|~", myid_text)
0 голосов
/ 15 августа 2011

T-SQL REPLACE на самом деле имеет разные аргументы. Например,

REPLACE(string1, string2, replaceText)

Где он ищет string1 в string2, тогда как обычно это:

string1.Replace(string2, replaceText)

... в .NET, где вы ищете string2 в string1. Для большого количества замен строк я бы порекомендовал StringBuilder.

var builder = new Stringbuilder(input);
builder = builder.Replace(class_text, "~~|~").Replace(id_text, class_text).Replace("~~|~", id_text)

string result = builder.ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...