2010-03-05 14 views
5

हम गतिशील रूप से कुछ SQL कथन बना रहे हैं और हम आईएन ऑपरेटर का उपयोग कर रहे हैं। यदि हमारे मूल्य मूल्यों का एक संग्रह है ऐसी है कि:जांचें कि कोई ऑब्जेक्ट एक सामान्य संग्रह है

List<Guid> guids = new List<Guid>() 

मैं अपने खंड बिल्डर के लिए 'guids' प्रदाता के लिए सक्षम होना चाहते हैं, यह प्रकार सत्यापित और अगर यह की तरह एक खंड बनाने के गणनीय है:

IN ({Guid1}, {Guid2}, {Guid3}) 

जांच की जा रही है कि मूल्य इस तरह IEnumerable है:

if (value is IEnumerable) 

(जो बहुत नियमित रूप से :) होता है) जब एक स्ट्रिंग में पारित हो जाता है नीचे गिर जाता है। इस प्रकार की स्थिति को प्रमाणित करने का सबसे अच्छा तरीका क्या है?

+1

कृपया अपना खुद का एसक्यूएल बनाएं। या तो LINQ (जो मैं प्रशंसक नहीं हूं) या अन्य तंत्र का उपयोग करें। न केवल डीबग करना मुश्किल है, नाबालिग क्वेरी परिवर्तनों के लिए ऐप को फिर से तैनात किए बिना बनाए रखना मुश्किल है, लेकिन अनिवार्य रूप से एसक्यूएल इंजेक्शन के मुद्दे हैं जिनसे निपटने की आवश्यकता है। – NotMe

+0

कोई विकल्प नहीं है। : | मेरा विश्वास करो मैं दिल की धड़कन में लिंक का उपयोग करूँगा। –

उत्तर

7

के बारे में कैसे:

if(value .GetType().IsGenericType && value is IEnumerable) 
5

आप IEnumerable के लिए अपने चेक के साथ संयोजन में value.GetType().IsGenericType की कोशिश कर सकते।

+0

उसने आपको एक मिनट तक हराया :) –

2

के बारे में क्या:

value is IEnumerable<Guid> 

अगर आपको GUID उदाहरणों उम्मीद यह बेहतर है, है ना?

संबंधित मुद्दे