我要检查删除重复的由;
分割字符串,但我不知道该怎么做下一
我这样的代码:如何使用LINQ比较和在一个列表替换字符串重复
string str = "PORTION G ON GROUND FLOOR;/n/nPORTION G ON GROUND FLOOR;/n/nabcdef1234;/n/nabcdef1234";
List<string> unitList = new List<string>();
foreach (string s in str.Replace("/n","").Split(';'))
{
unitList.Add(s);
}
if ((unitList.Distinct()).Count() == 1)
Label1.Text=unitList.FirstOrDefault();
else
{
//return more than 1 ,remove duplicate
//replace duplicate by "-" or ""
}
我的输出是:"PORTION G ON GROUND FLOOR;/n/n-;/n/nabcdef1234;/n/n-"
。
我发现如果我使用string []数组而不是List,返回(unitList.Distinct()).Count()
是2而不是1,我想知道是否有错误。
这里是我的代码:
string str = "PORTION G ON GROUND FLOOR;/n/nPORTION G ON GROUND FLOOR;/n/nPORTION G ON GROUND FLOOR";
string[] unitList = new string[10];
int i=0;
foreach (string s in str.Replace("/n","").Split(';'))
{
unitList[i]=s;
i++;
}
我很高兴,并感谢任何人都可以帮我解决这个问题!
由于其同样的事情,它的工作原理。但你可以解释下部分为什么使用字符串数组将返回2而不是1 – bbqwings 2014-12-19 06:17:34
我测试过,我的预期结果应该被删除'.aggregate()' – bbqwings 2014-12-19 06:36:02
问题是你正在创建一个长度为10的数组,你只使用4个元素。 Distinct方法也将空值视为一个元素,这就是说您是一个额外的元素(具有空值)。为了避免这种情况,你可以这样做:string [] unitList = str.Replace(“/ n”,“”).Split(';') – octavioccl 2014-12-19 15:11:10