के किसी भी मैं एक इस तरह मानकों की सूची है:चेक सूची <t> शामिल करता है, तो एक और सूची
public class parameter
{
public string name {get; set;}
public string paramtype {get; set;}
public string source {get; set;}
}
IEnumerable<Parameter> parameters;
और तार मैं के खिलाफ यह जांच करना चाहते हैं की एक सरणी।
string[] myStrings = new string[] { "one", "two"};
मैं पैरामीटर सूची पर पुनरावृति और देखें कि क्या स्रोत संपत्ति myStrings सरणी में से किसी के बराबर है करना चाहते हैं। मैं इसे नेस्टेड फोरैच के साथ कर सकता हूं, लेकिन मैं सीखना चाहता हूं कि इसे कैसे अच्छे तरीके से करना है क्योंकि मैं लिनक के साथ खेल रहा हूं और जैसे कि इत्यादि जैसे विस्तारित तरीकों की तरह विस्तार विधियों को सिर्फ गलत लगता है। ऐसा करने के लिए एक और अधिक सुरुचिपूर्ण पसंदीदा linq/lambda/delegete तरीका है।
धन्यवाद
धन्यवाद ऐसा लगता है कि मैं क्या देख रहा हूं, मैं इसे आजमाउंगा। चीजों के कार्यात्मक पक्ष के साथ थोड़ा और खेलने की जरूरत है। पूंजीकरण वर्ग और गुणों के संबंध में, मैं उपर्युक्त उदाहरण लिखते समय बस भूल गया था। – gdp
क्यों ओ (एन^2)? क्या यह ओ (एन * एम) नहीं है क्योंकि हम दो चर के बारे में बात कर रहे हैं और एक नहीं? चूंकि एम (पैरामीट) स्थिर हैं, यह ओ (एन) जैसा ही है। मैं नहीं देखता कि यहां कितना अंतर होना चाहिए? लेकिन सहमत हुए, इंटरसेक्ट में तेज़ी से होने की संभावना है, लेकिन इसकी गारंटी नहीं है। – Squazz
आप सही हैं कि यह ओ (एन * एम) होना चाहिए - एम स्थिर नहीं है - यह सूचियों में से एक का आकार है, भले ही विशेष उदाहरण में यह "2" हो। यहां तक कि निरंतर मूल्य भी अभ्यास में नगण्य नहीं हैं - सभी गैर-तुच्छ सूची की लंबाई के लिए 'इंटरसेक्ट' तेजी से होगा - यदि सूचियां कम से कम छोटी हैं, तो इससे कोई फर्क नहीं पड़ता है, किसी भी मामले में कोई दूसरा तरीका नहीं है (उस स्थिति में प्रदर्शन शायद आपकी चिंता नहीं है वैसे भी) – BrokenGlass