字符串操作c#
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了字符串操作c#,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2199字,纯文字阅读大概需要4分钟。
内容图文
![字符串操作c#](/upload/InfoBanner/zyjiaocheng/810/7f8196eba1a0414a99458a7b4a90a515.jpg)
我有一个字符串,如:A:<<<默认>> ;; B:<<默认>> ;; C:<<默认>> ;; D:<<默认>> ;; E:<<默认>> [模板字符串]
字符串的表示形式类似于字典键:用分号分隔符分组为字符串的值.
现在应用逻辑后,我得到一个下面的字符串列表,
A:aaa;E:eee
D:ddd
B:bbb;E:eee
现在我需要将上面的列表作为下面的列表(其中具有新值的键应该以正确的顺序放置并且其余键具有默认值),
A:aaa;B:<<Default>>;C:<<Default>>;D:<<Default>>;E:eee
A:<<Default>>;B:<<Default>>;C:<<Default>>;D:ddd;E:<<Default>>
A:<<Default>>;B:bbb;C:<<Default>>;D:<<Default>>;E:eee
尝试使用拆分功能,替换并转换为列表来实现此目的.我们有任何有效的方法来实现同样的目标吗?
string constants = "A:<<Default>>;B:<<Default>>;C:<<Default>>;D:<<Default>>;E:<<Default>>";
string placeHolder = string.Empty;
List<string> filteredkeys = new List<string>();
List<string> formattedKeys = new List<string>();
filteredkeys.Add("A:aaa;E:eee;");
filteredkeys.Add("D:ddd;");
filteredkeys.Add("B:bbb;E:eee;");
foreach (var item in filteredkeys)
{
placeHolder = constants;
List<string> keyCombination = item.TrimEnd(';').Split(';').ToList();
foreach (string keys in keyCombination)
{
List<string> abc = keys.Split(':').ToList();
switch (abc[0])
{
case "A":
placeHolder = placeHolder.Replace("A:<<Default>>", keys);
break;
case "B":
placeHolder = placeHolder.Replace("B:<<Default>>", keys);
break;
case "C":
placeHolder = placeHolder.Replace("C:<<Default>>", keys);
break;
case "D":
placeHolder = placeHolder.Replace("D:<<Default>>", keys);
break;
case "E":
placeHolder = placeHolder.Replace("D:<<Default>>", keys);
break;
}
}
formattedKeys.Add(placeHolder);
}
解决方法:
Linq解决方案:
String source = @"A:<<Default>>;B:<<Default>>;C:<<Default>>;D:<<Default>>;E:<<Default>>";
// Note, that "E" value (eee:fff:ggg:hhh) contains semicolons
String values = "A:aaa;E:eee:fff:ggg:hhh";
var dict = values
.Split(';')
.Select(item => item.Split(new Char[] {':'}, 2)) // "2": if value contains ':'
.ToDictionary(chunk => chunk[0], chunk => chunk[1]);
String result = String.Join(";", source
.Split(';')
.Select(item => item.Split(':'))
.Select(item => String.Join(":",
item[0],
dict.ContainsKey(item[0]) ? dict[item[0]] : item[1])));
// Test
// A:aaa;B:<<Default>>;C:<<Default>>;D:<<Default>>;E:eee:fff:ggg:hhh
Console.Write(result);
内容总结
以上是互联网集市为您收集整理的字符串操作c#全部内容,希望文章能够帮你解决字符串操作c#所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。