Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में string.Join() से स्ट्रिंग्स को कॉमा-सीमित स्ट्रिंग में जोड़ना


C# में कई स्ट्रिंग्स को एक विभाजक (delimiter) के साथ जोड़कर एकल स्ट्रिंग बनाने के लिए string.Join() मेथड का उपयोग किया जाता है। यह सरणी, सूची, या किसी भी IEnumerable<string> के साथ काम करता है।

उदाहरण

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        // स्ट्रिंग सूची
        List items = new List { "water", "food", "air" };
        
        // कॉमा से जोड़ें
        string result = string.Join(",", items);
        
        Console.WriteLine($"मूल सूची: [{string.Join(", ", items)}]");
        Console.WriteLine($"जुड़ी स्ट्रिंग: {result}");
        
        // विभिन्न विभाजक
        Console.WriteLine($"\nविभिन्न विभाजक:");
        Console.WriteLine($"स्पेस: '{string.Join(" ", items)}'");
        Console.WriteLine($"सेमिकोलन: '{string.Join(";", items)}'");
        Console.WriteLine($"पाइप: '{string.Join(" | ", items)}'");
        Console.WriteLine($"नई लाइन: '{string.Join(Environment.NewLine, items)}'");
    }
}

आउटपुट

मूल सूची: [water, food, air]
जुड़ी स्ट्रिंग: water,food,air

विभिन्न विभाजक:
स्पेस: 'water food air'
सेमिकोलन: 'water;food;air'
पाइप: 'water | food | air'
नई लाइन: 'water
food
air'

string.Join() ओवरलोड्स

ओवरलोडविवरण
Join(string, string[])स्ट्रिंग सरणी
Join(string, IEnumerable<string>)कोई भी स्ट्रिंग अनुक्रम (.NET Core / .NET 5+)
Join(string, object[])ऑब्जेक्ट सरणी (ToString() कॉल करता है)
Join(char, string[])कैरेक्टर विभाजक
Join(string, params string[])पैरामीटर सरणी

विभिन्न डेटा प्रकारों के साथ उपयोग

using System;
using System.Collections.Generic;
using System.Linq;

public class Demo
{
    public static void Main()
    {
        // इंटीजर सरणी
        int[] numbers = { 1, 2, 3, 4, 5 };
        Console.WriteLine($"इंट सरणी: {string.Join(", ", numbers)}");
        
        // ऑब्जेक्ट सरणी (ToString स्वचालित)
        object[] mixed = { "Text", 123, true, 45.67, DateTime.Now };
        Console.WriteLine($"मिश्रित: {string.Join(" | ", mixed)}");
        
        // कस्टम ऑब्जेक्ट्स (ToString ओवरराइड के साथ)
        var people = new[]
        {
            new { Name = "अमित", Age = 25 },
            new { Name = "प्रिया", Age = 30 }
        };
        Console.WriteLine($"ऑब्जेक्ट्स: {string.Join(", ", people)}");
        
        // LINQ के साथ फ़िल्टर/ट्रांसफॉर्म
        var adults = people.Where(p => p.Age >= 25)
                          .Select(p => p.Name);
        Console.WriteLine($"वयस्क नाम: {string.Join(", ", adults)}");
    }
}

आउटपुट

इंट सरणी: 1, 2, 3, 4, 5
मिश्रित: Text | 123 | True | 45.67 | 1/15/2024 2:30:45 PM
ऑब्जेक्ट्स: { Name = अमित, Age = 25 }, { Name = प्रिया, Age = 30 }
वयस्क नाम: अमित, प्रिया

Join() बनाम StringBuilder

using System;
using System.Text;
using System.Diagnostics;

public class Demo
{
    public static void Main()
    {
        string[] words = new string[10000];
        for (int i = 0; i < words.Length; i++)
            words[i] = $"Word{i}";
        
        // string.Join
        var sw = Stopwatch.StartNew();
        string joined = string.Join(",", words);
        Console.WriteLine($"string.Join: {sw.ElapsedMilliseconds} ms, लंबाई: {joined.Length}");
        
        // StringBuilder
        sw.Restart();
        var sb = new StringBuilder();
        for (int i = 0; i < words.Length; i++)
        {
            if (i > 0) sb.Append(",");
            sb.Append(words[i]);
        }
        string built = sb.ToString();
        Console.WriteLine($"StringBuilder: {sw.ElapsedMilliseconds} ms, लंबाई: {built.Length}");
        
        Console.WriteLine($"समान: {joined == built}");
    }
}

आउटपुट

string.Join: 2 ms, लंबाई: 68889
StringBuilder: 3 ms, लंबाई: 68889
समान: True

उलटा संक्रिया: Split()

string csv = "water,food,air";
string[] parts = csv.Split(',');
// या एकाधिक विभाजक
string[] parts2 = csv.Split(new[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries);

Console.WriteLine($"विभाजित: [{string.Join(" | ", parts)}]");

महत्वपूर्ण बिंदु

  • string.Join() null विभाजक के लिए ArgumentNullException फेंकता है
  • संग्रह में null तत्व खाली स्ट्रिंग के रूप में व्यवहार किए जाते हैं
  • खाली संग्रह के लिए खाली स्ट्रिंग ("") लौटाता है
  • params string[] ओवरलोड के साथ व्यक्तिगत स्ट्रिंग्स पास कर सकते हैं: string.Join(",", "a", "b", "c")
  • प्रदर्शन के लिए अनुकूलित है - आंतरिक रूप से StringBuilder उपयोग करता है
  • String.Split() विपरीत संक्रिया है
  1. - वर्णों की सूची को स्ट्रिंग में बदलने का पायथन प्रोग्राम

    समस्या विवरण पायथन को इस तरह के रूपांतरण की बहुत आवश्यकता होती है। उदाहरण के लिए, ऐसे रूपांतरण सीरियलाइज़ेशन उद्देश्यों के लिए उपयोगी होते हैं। ऐसे रूपांतरण का एक उदाहरण होगा: [h, e, l, l, o, , w, o, r, l, d] से hello world पायथन में एक join मेथड होता है जिसका उपयोग ऐसे रूपांतरण के लिए किया जा सकत

  1. - Python स्ट्रिंग्स को टपल में कैसे बदलें?

    Python का बिल्ट-इन फंक्शन `tuple()` किसी भी अनुक्रम ऑब्जेक्ट को टपल में बदलता है। यदि यह एक स्ट्रिंग है, तो प्रत्येक कैरेक्टर को एक स्ट्रिंग के रूप में माना जाता है और कॉमा से अलग करके टपल में डाला जाता है। >>> string = Tutorialspoint >>> tuple(string) (T, u, t, o, r, i, a, l, s,

  1. - पायथन में दो स्ट्रिंग्स को जोड़कर सिंगल स्ट्रिंग में कैसे बदलें?

    पायथन में 2 स्ट्रिंग्स को जोड़ने के लिए, हम कनकैटेनेशन ऑपरेटर + का उपयोग कर सकते हैं। उदाहरण के लिए: str1 = Hello str2 = World str3 = str1 + str2 print(str3) यह हमें आउटपुट देगा: HelloWorld हम कई स्ट्रिंग्स को एक साथ जोड़ने के लिए str.join(seq) का भी उपयोग कर सकते हैं। उदाहरण के लिए: s = - seq = (a,