我在试着删除某些字符。并整理列表中的项目。这是我的问题的一个简单的例子。
private void add_Click(object sender, EventArgs e)
{
string[] s = { "Tarik \"F\"", "Tarik ", "Tarik", "Souad ", "Mehdi FARID", "Souad F ", "DAFIR CCF", "khalid FA", "SAFAF" };
char[] c = { 'F', ' ', '"' };
foreach (string b in s)
{
txtDisplay.AppendText(b.TrimEnd(c) + "\n");
}
}其结果是:
Tarik,
Tarik,
Tarik,
Souad,
Mehdi FARID,
Souad,
DAFIR CC: (for this item I want to keep the last 'F'),
SAFA : (for this item I want to keep the last 'F')意思是,如果“F”是单词的一部分,它就不能被删除,如果是孤立的,那么是的。
发布于 2013-09-02 01:22:13
使用正则表达式:
var regex = new Regex(@"\W+[Ff]*(?=\W|$)");
foreach (var s in strings)
{
txtDisplay.AppendText(regex.Replace(s, "") + Environment.NewLine);
}不管这个人有多少名字,这个解决方案都是有效的。
发布于 2013-09-02 03:08:28
这对我来说很管用:
var results = s.Select(x =>
String.Join(" ", x
.Split(new [] { '"', ' ',})
.Where(z => z != "F")));我得到了以下结果:

发布于 2013-09-02 03:49:24
string[] s =
{
"Tarik \"F\"", "Tarik ", "Tarik", "Souad ", "Mehdi FARID", "Souad F ", "DAFIR CCF",
"khalid FA", "SAFAF"
};
char[] c = { ' ', '"' };
txtDisplay.AppendText(s.Select(s1 => s1.Split(c)).Select(l => l.Where(s2 =>
!String.IsNullOrWhiteSpace(s2) && !s2.Equals("F"))
.Aggregate("", (current, s2) => current +
(current.Length > 0 ? " " + s2 : s2))).Aggregate(
"", (current1, temp) => current1 + (temp + "\n")));https://stackoverflow.com/questions/18564391
复制相似问题