我有一个包含字符串的对象数组。
var values = new object[5];
values[0] = "PIZZA HUT";
values[1] = "ISLAMABAD";
values[2] = "ISLAMABAD";
values[3] = "PAKISTAN";
values[4] = "PAKISTAN";
我想从数组中获取一串唯一元素,与,
连接也需要检查字符串是否为nullOrWhiteSpace;
PIZZA HUT, ISLAMABAD, PAKISTAN.
目前我正在做以下事情。但是你可以看到它需要在if语句中进行大量检查。我想知道是否有更好的方式使用LINQ
string featureName = values[0] as string;
string adminboundry4 = values[1] as string;
string adminboundry3 = values[2] as string;
string adminboundry2 = values[3] as string;
string adminboundry1 = values[4] as string;
if (!string.IsNullOrWhiteSpace(adminboundry4)
&& adminboundry4 != adminboundry1
&& adminboundry4 != adminboundry2
&& adminboundry4 != adminboundry3) //want to get rid of these checks
featureName += "," + adminboundry4;
if (!string.IsNullOrWhiteSpace(adminboundry3)) //Not checking for duplicate here just for this question
featureName += "," + adminboundry3;
if (!string.IsNullOrWhiteSpace(adminboundry2)) //Not checking for duplicate here just for this question
featureName += "," + adminboundry2;
if (!string.IsNullOrWhiteSpace(adminboundry1)) //Not checking for duplicate here just for this question
featureName += "," + adminboundry1;
featureName
包含PIZZA HUT, ISLAMABAD, PAKISTAN, PAKISTAN
答案 0 :(得分:10)
您可以使用string.Join()
方法从对象数组中获取数组不同的字符串元素。
试试这个:
var Result = string.Join(",", values.Cast<string>()
.Where(c => !string.IsNullOrWhiteSpace(c))
.Distinct());
答案 1 :(得分:4)
是的,您可以使用LINQ:
var featureName = String.Join(
",",
values
.Cast<String>()
.Where(s => !String.IsNullOrWhiteSpace(s))
.Distinct()
);
答案 2 :(得分:0)
String.Join(",",values.ToList().Distinct(str=>str))
答案 3 :(得分:0)
String.Join(",", values.Distinct().Where(s=>!s.ISNullOrWhiteSpace()))