Как заменить пользовательский формат строки? - PullRequest
0 голосов
/ 03 мая 2018

Долго ищу в сети. Но бесполезно. Пожалуйста, помогите или попробуйте дать некоторые идеи, как этого добиться.

В моей базе данных SQL есть данные:

Reason:%s与%s等预算科目的内容存在重复,核减%d万元

ResultS1:本科目镍铁中多元素样品前处理

ResultS2:本科目ICP测定法

ResultD:2.50

Я хочу получить строку: 本科目镍铁中多元素样品前处理与本科目ICP测定法等预算科目的内容存在重复,核减2.50万元

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Вы можете использовать полезный метод расширения из этого вопроса (второй ответ вниз) ReplaceFirst:

public static string ReplaceFirst(this string text, string search, string replace)
{
    int pos = text.IndexOf(search);
    if (pos < 0)
    {
        return text;
    }
    return $"{text.Substring(0, pos)}{replace}{text.Substring(pos + search.Length)}";
}

и затем назовите это так

var reason = "%s与%s等预算科目的内容存在重复,核减%d万元";
var results1 = "本科目镍铁中多元素样品前处理";
var results2 = "本科目ICP测定法";
var resultd = "2.50";

var final = reason
    .ReplaceFirst("%s", results1)
    .ReplaceFirst("%s", results2)
    .ReplaceFirst("%d", resultd);

Где final назначено

"本科目镍铁中多元素样品前处理与本科目ICP测定法等预算科目的内容存在重复,核减2.50万元"
0 голосов
/ 03 мая 2018
SELECT concat_ws('',ResultS1,'与',ResultS2,'等预算科目的内容存在重复,核减',ResultD,'万元') as Result 
FROM `yourtable`

Следуйте ответу объединенной строке в c #

string key = String.Join("", new String[] { ResultS1,'与',ResultS2,'等预算科目的内容存在重复,核减',ResultD,'万元'});
...