2012-08-31 22 views
5

मेरे पास स्ट्रिंग वाले ऑब्जेक्ट्स की एक सरणी है।ऑब्जेक्ट्स की सरणी से अद्वितीय स्ट्रिंग्स में शामिल हों

var values = new object[5]; 
values[0] = "PIZZA HUT"; 
values[1] = "ISLAMABAD"; 
values[2] = "ISLAMABAD"; 
values[3] = "PAKISTAN"; 
values[4] = "PAKISTAN"; 

मैं सरणी से अद्वितीय तत्व की एक स्ट्रिंग प्राप्त करना चाहते हैं, , साथ शामिल हो गए भी अगर स्ट्रिंग isNullOrWhiteSpace जाँच करने के लिए की जरूरत है;

PIZZA HUT, ISLAMABAD, PAKISTAN. 

वर्तमान में मैं निम्नलिखित कर रहा हूं। लेकिन आप देख सकते हैं कि अगर इसे कथन में ज्यादा जांच की आवश्यकता है। अगर वहाँ 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

+1

thats मैं क्या –

उत्तर

10

आप string.Join() विधि का उपयोग कर सकते हैं और अपने ऑब्जेक्ट सरणी से सरणी अलग स्ट्रिंग तत्व प्राप्त करें।

इस प्रयास करें:

var Result = string.Join(",", values.Cast<string>() 
           .Where(c => !string.IsNullOrWhiteSpace(c)) 
           .Distinct()); 
+0

के लिए जांच करने की आवश्यकता के लिए जांच करने की आवश्यकता को कम करना है कि क्या चाहते हैं मैं देख रहा था, मुझे –

+2

+1 आज़माएं एकमात्र उत्तर (अब तक) जिसमें 'IsNullOrWhiteSpace' चेक शामिल है। – Laoujin

+1

thx यह बहुत अच्छा काम किया –

4

हाँ, आप उपयोग कर सकते हैं LINQ:

var featureName = String.Join(
    ",", 
    values 
    .Cast<String>() 
    .Where(s => !String.IsNullOrWhiteSpace(s)) 
    .Distinct() 
); 
+0

मैं भी सफेद स्थान या नल स्ट्रिंग –

0
String.Join(",",values.ToList().Distinct(str=>str)) 
+0

मैं भी सफेद स्थान या नल स्ट्रिंग –

0
String.Join(",", values.Distinct().Where(s=>!s.ISNullOrWhiteSpace())) 
संबंधित मुद्दे