C# 有两行以相同的字符开头,如何删除第二行?

tautmonunun1983

New member
嘿,伙计们,如题所述,如果两行具有相同的第一个字符,如何在C#中删除第二行?像这样的行:url1 / page1 / title1 / number1url1 / page1 / title1 / number2想保留第一个链接并删除第二个,请有什么想法吗?
 
这些数字是随机的id(比如20897655),似乎很难使用你所建议的方法。但是,另一方面,我们可以使用正则表达式模式来找到最后一个斜杠之前的字符串,因为那之前的URL都是相同的。有什么想法吗?
 
整个字符串的前两个字符必须不同,或者前两个字符可以相同,但后面的字符不能相同。在字符串开头相同的字符有多少个是可以接受的?
 

poulmodedab1974

New member
你只需使用Regex来分割常数部分(直到最后一个斜杠后面的数字)和变量部分(即数字本身)。不要担心数字有多大,Regex会处理它。
 

elininac1988

New member
“假设你已经将这些链接存储在一个字符串数组[]中,你只需要做到string firstletter = "";for (int i =0;i<myarray.count;i ){if(firstletter == myarray.ToString().Substring(0,1)) myarray.removeat(i);firstletter = myarray.ToString().Substring(0,1);}如果语法有些错误,我在这里写得很快,望见谅。”
 

mitikeetu1972

New member
“我一直在想...为什么有人会建议使用正则表达式呢?对于这个任务来说,它也很慢。如果你将链接存储到某种列表中,你就可以轻松地删除第二个字符串元素。”
 
var list = getItemsIntoList()var listDomainsHandled = new List();var listResults = new List();foreach(var line in list){ var dom = GetDomain(line); if(!listDomainsHandled.Contains(dom)){ listResults.Add(line); }}从工作流程的角度来看,这个答案似乎是最好的。但是我想你仍然可以在GetDomain函数中使用Regex来更好地识别各种协议URL,如http,https,ftp等。
 
顶部