我试图找到一个解决方案,以消除重复字符串名称,说为前,在文字领域 ,我填充的某些文章的历史版本贡献者的名字,等等,如果“ron”对文章的版本化作出了3次贡献,则名称“ron”被添加到该文字控件中,并输出“ron”3次。方法来查找/消除重复的字符串
我试图找到,如果一个名字重复了两次,我应该能够填充它只有一次。我怎样才能做到这一点?
我试图找到一个解决方案,以消除重复字符串名称,说为前,在文字领域 ,我填充的某些文章的历史版本贡献者的名字,等等,如果“ron”对文章的版本化作出了3次贡献,则名称“ron”被添加到该文字控件中,并输出“ron”3次。方法来查找/消除重复的字符串
我试图找到,如果一个名字重复了两次,我应该能够填充它只有一次。我怎样才能做到这一点?
根据您的设置,我要么使用一个StringCollection,只是检查名称之前插入或只是所有的名字添加到列表中,并调用鲜明的()(在扩展方法存在System.Linq的)。因此,要么:
StringCollection Names=new StringCollection();
if(!Names.Contains(Name))
Names.Add(Name);
由于CharithJ建议,或:
List<string> Names=new List<string>();
Names.Add(Name);
...
foreach(string Name in Names.Distinct())
{
...
}
要么将工作不够好。
谢谢,我会试试看。 – Ron
创建的要达到(它就像一个视图模型)什么是模型驱动呈现您的“报告”。然后,该模型可以控制“仅输出一次每个名称”的需求。伪代码如下:
var ron = new Author("ron");
var ronnie = new Author("ronnie");
var report = new HistoryReport();
report.AddVersion(1, ron);
report.AddVersion(2, ron);
report.AddVersion(3, ronnie);
string renderedReport = report.Render();
// output e.g.:
// Versions 1 and 2 by ron; Version 3 by ronnie
然后您使用该输出填充您的文字控件。
如果您使用简单的字符串替换,你会ronnie
混合起来ron
。
不熟悉MVC ...谢谢无论如何。 – Ron
StringCollection authors= new StringCollection();
if (!authors.Contains("Ron"))
{
authors.Add("Ron");
}
我会建议你使用词典,其关键字将作者姓名(或您不希望重复字段)和值将是捐助者的名单。例如,
Dictionary<string, List<Contributor>> contributors
= new Dictionary<string, List<Contributor>>();
Contributor contributor = new Contributor("ron", /*other values*/);
if (!contributors.ContainsKey(contributor.Name))
contributors.Add(contributor.Name,new List<Contributor>());
contributors[contributor.Name].Add(contributor);
我不知道,我能得到这个工作,因为我拉起晔使用API调用的作者名单...但会尝试。感谢您的建议@Nawaz – Ron
一个非常简单的答案是寻找某种一套。集合是仅允许对象的一个实例的数据结构,例如, “ron”,在结构中。这样当你需要从设置中提取数据时,“ron”只会出现一次。 – Alastair
这不完全清楚你的源字符串是什么,以及你的输出是什么。这是一个CMS系统 - - 和在字面控制填充作者的名字,通过内容的版本迭代作者 –
p.campbell嗨,我使用的是作者的名字晔的API获得。 – Ron