কীভাবে একটি তালিকা <স্ট্রিং> এ সীমানাযুক্ত স্ট্রিং বিভক্ত করবেন


139

আমার এই কোডটি ছিল:

    String[] lineElements;       
    . . .
    try
    {
        using (StreamReader sr = new StreamReader("TestFile.txt"))
        {
            String line;
            while ((line = sr.ReadLine()) != null)
            {
                lineElements = line.Split(',');
                . . .

তবে তারপরে ভেবেছিলাম আমার পরিবর্তে সম্ভবত একটি তালিকা নিয়ে যাওয়া উচিত। তবে এই কোড:

    List<String> listStrLineElements;
    . . .
    try
    {
        using (StreamReader sr = new StreamReader("TestFile.txt"))
        {
            String line;
            while ((line = sr.ReadLine()) != null)
            {
                listStrLineElements = line.Split(',');
. . .

... আমাকে দেয়, " প্রকারের স্ট্রিং [] 'কে' সিস্টেম.কলেশনস.জেনারিক.লিস্ট 'এ রূপান্তরিত করা যায় না "

উত্তর:


320

string.Split()একটি অ্যারে প্রদান করে - আপনি এটি ব্যবহার করে এটি তালিকায় রূপান্তর করতে পারেন ToList():

listStrLineElements = line.Split(',').ToList();

নোট করুন যে ফাংশনটি System.Linqঅ্যাক্সেস করতে আপনার আমদানি করতে .ToList()হবে।


64
সম্ভবত এখানে উল্লেখ করা উচিত যে আপনাকে নামস্থান সিস্টেম ব্যবহার করতে হবে। লিংক
ডাঃ

3
@ সাইফারlistStrLineElements = line?.Split(',').ToList();
ভিনিগাস

62

হয় ব্যবহার:

List<string> list = new List<string>(array);

বা লিনকিউ থেকে:

List<string> list = array.ToList();

অথবা নির্দিষ্ট প্রয়োগের উপর নির্ভর না করার জন্য আপনার কোডটি পরিবর্তন করুন:

IList<string> list = array; // string[] implements IList<string>

11

নেমস্পেস ব্যবহার করে অন্তর্ভুক্ত করুন System.Linq

List<string> stringList = line.Split(',').ToList();

প্রতিটি আইটেমের মাধ্যমে পুনরাবৃত্তি করার জন্য আপনি এটিকে সহজেই ব্যবহার করতে পারেন।

foreach(string str in stringList)
{

}

String.Split() একটি অ্যারে প্রদান করে, তাই এটি ব্যবহার করে একটি তালিকায় রূপান্তর করুন ToList()


6

শুধু আপনি সঙ্গে ব্যবহার করতে পারেন using System.Linq;

List<string> stringList = line.Split(',')     // this is array
 .ToList();     // this is a list which you can loop in all split string

6

এই লাইনটি ব্যবহার করে দেখুন:

List<string> stringList = line.Split(',').ToList(); 

3

এটি কোনও সিএসভি ফাইল পড়বে এবং এতে একটি সিএসভি লাইন স্প্লিটার রয়েছে যা ডাবল কোটগুলি পরিচালনা করে এবং এটি এক্সেল খোলার পরেও এটি পড়তে পারে।

    public List<Dictionary<string, string>> LoadCsvAsDictionary(string path)
    {
        var result = new List<Dictionary<string, string>>();

        var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
        System.IO.StreamReader file = new System.IO.StreamReader(fs);

        string line;

        int n = 0;
        List<string> columns = null;
        while ((line = file.ReadLine()) != null)
        {
            var values = SplitCsv(line);
            if (n == 0)
            {
                columns = values;
            }
            else
            {
                var dict = new Dictionary<string, string>();
                for (int i = 0; i < columns.Count; i++)
                    if (i < values.Count)
                        dict.Add(columns[i], values[i]);
                result.Add(dict);
            }
            n++;
        }

        file.Close();
        return result;
    }

    private List<string> SplitCsv(string csv)
    {
        var values = new List<string>();

        int last = -1;
        bool inQuotes = false;

        int n = 0;
        while (n < csv.Length)
        {
            switch (csv[n])
            {
                case '"':
                    inQuotes = !inQuotes;
                    break;
                case ',':
                    if (!inQuotes)
                    {
                        values.Add(csv.Substring(last + 1, (n - last)).Trim(' ', ','));
                        last = n;
                    }
                    break;
            }
            n++;
        }

        if (last != csv.Length - 1)
            values.Add(csv.Substring(last + 1).Trim());

        return values;
    }

2
string[] thisArray = myString.Split('/');//<string1/string2/string3/--->     
List<string> myList = new List<string>(); //make a new string list    
myList.AddRange(thisArray);    

AddRangeপাস string[]এবং স্ট্রিং তালিকা পেতে ব্যবহার করুন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.