इसे .NET 2.0 (कोई LINQ) में करने के लिए, उदा। एसक्यूएल सर्वर-ReportingServices के लिए इसके लिए एक समारोह लिखने के बिना:
VB.NET
Dim a As String = "", b As String = "b", c As String = "", d As String = "d", e As String = ""
Dim lala As String = String.Join("/", String.Join(vbBack, New String() {a, b, c, d, e}).Split(New Char() {ControlChars.Back}, System.StringSplitOptions.RemoveEmptyEntries))
System.Console.WriteLine(lala)
सी # (गूगल से उतरने के उन लोगों के लिए और VB.NET के लिए खोज नहीं)
string a = "", b = "b", c = "", d = "d", e = "";
string lala = string.Join("/",
string.Join("\u0008",
new string[] { a, b, c, d, e }
).Split(new char[] { '\u0008' }, System.StringSplitOptions.RemoveEmptyEntries)
);
System.Console.WriteLine(lala);
यह मानता है कि चरित्र बैकस्पेस आपके तारों में नहीं होता है (आमतौर पर सच होना चाहिए, क्योंकि आप कीबोर्ड द्वारा इस चरित्र को आसानी से दर्ज नहीं कर सकते हैं)।
इसके अलावा, अगर आप एक डेटाबेस से मूल्यों को प्राप्त है, तो यह और भी आसान है, जब से तुम सीधे एसक्यूएल में कर सकते हैं:
PostgreSQL & MySQL:
SELECT
concat_ws('/'
, NULLIF(searchTerm1, '')
, NULLIF(searchTerm2, '')
, NULLIF(searchTerm3, '')
, NULLIF(searchTerm4, '')
) AS RPT_SearchTerms;
और यहां तक कि गौरवशाली एमएस के साथ -एसक्यूएल-सर्वर यह संभव है (पीएस: यह कटाक्ष है):
DECLARE @in_SearchTerm1 nvarchar(100)
DECLARE @in_SearchTerm2 nvarchar(100)
DECLARE @in_SearchTerm3 nvarchar(100)
DECLARE @in_SearchTerm4 nvarchar(100)
SET @in_SearchTerm1 = N'a'
SET @in_SearchTerm2 = N''
SET @in_SearchTerm3 = N'c'
SET @in_SearchTerm4 = N''
SELECT
COALESCE
(
STUFF
(
(
SELECT '/' + RPT_SearchTerm AS [text()]
FROM
(
SELECT NULLIF(@in_SearchTerm1, N'') AS RPT_SearchTerm, 1 AS RPT_Sort
UNION ALL SELECT NULLIF(@in_SearchTerm2, N'') AS RPT_SearchTerm, 2 AS RPT_Sort
UNION ALL SELECT NULLIF(@in_SearchTerm3, N'') AS RPT_SearchTerm, 3 AS RPT_Sort
UNION ALL SELECT NULLIF(@in_SearchTerm4, N'') AS RPT_SearchTerm, 4 AS RPT_Sort
) AS tempT
WHERE RPT_SearchTerm IS NOT NULL
ORDER BY RPT_Sort
FOR XML PATH(N''), TYPE
).value('.', 'nvarchar(MAX)')
,1
,3
,N''
)
,N''
) AS RPT_SearchTerms
मुझे एक त्रुटि मिल रही है: "कहां 'सिस्टम' एर्रे 'का सदस्य नहीं है। और मुझे एमएसडीएन पर 'कहां' के बारे में कुछ नहीं दिख रहा है: http://msdn.microsoft.com/en-us/library/system.array.aspx – Doug
इसके बजाय मुझे इसके साथ कुछ भाग्य था: 'Array.FindAll (myArray , फ़ंक्शन (ओं) नहीं स्ट्रिंग। INNullOrEmpty (ओं)) 'क्या आप या तो अपना उत्तर बदल सकते हैं या' कहां 'कथन की व्याख्या कर सकते हैं? – Doug
'सिस्टम 'लिंक्क' से कहां है, http://msdn.microsoft.com/en-us/library/bb534803.aspx – Damith