.NET- এ নতুন লাইনে স্ট্রিং বিভক্ত করার সহজতম উপায়?


805

নেট .NET এ আমাকে নতুন স্ট্রাইনে বিভক্ত করতে হবে এবং আমি স্প্রিট পদ্ধতিতে স্ট্রিংগুলি বিভক্ত করার একমাত্র উপায় । তবে এটি আমাকে একটি নতুন লাইনে (সহজেই) বিভক্ত হতে দেয় না, তবে এটি করার সর্বোত্তম উপায় কী?


2
কেন হবে না? কেবলমাত্র সিস্টেম.ভিত্তিক পরিবেশ.নিউলাইন
এভিরাল্ডগ

16
তবে আপনাকে এটিকে একটি স্ট্রিংয়ে আবদ্ধ করতে হবে [] এবং একটি অতিরিক্ত যুক্তি যুক্ত করতে হবে এবং ... এটি কেবল বিব্রত বোধ করে।
আরসিআইএক্স

উত্তর:


1410

স্ট্রিনে বিভক্ত হওয়ার জন্য আপনাকে ওভারলোডটি ব্যবহার করতে হবে যা স্ট্রিংগুলির অ্যারে নেয়:

string[] lines = theText.Split(
    new[] { Environment.NewLine },
    StringSplitOptions.None
);

সম্পাদনা:
আপনি যদি কোনও পাঠ্যে বিভিন্ন ধরণের লাইন ব্রেকগুলি পরিচালনা করতে চান তবে আপনি একাধিক স্ট্রিংয়ের সাথে মিলের দক্ষতাটি ব্যবহার করতে পারেন। এটি উভয় প্রকারের লাইন বিরতিতে সঠিকভাবে বিভক্ত হবে এবং পাঠ্যে ফাঁকা লাইন এবং ব্যবধান সংরক্ষণ করবে:

string[] lines = theText.Split(
    new[] { "\r\n", "\r", "\n" },
    StringSplitOptions.None
);

3
@ আরসিআইএক্স: পদ্ধতিটিতে সঠিক পরামিতিগুলি প্রেরণ করা কিছুটা বিশ্রী কারণ আপনি এটি এমন কোনও কিছুর জন্য ব্যবহার করছেন যা এটি সক্ষম তার চেয়ে অনেক সহজ। কমপক্ষে এটি আছে, ফ্রেমওয়ার্ক 2 এর আগে আপনাকে একটি স্ট্রিংতে বিভক্ত হওয়ার জন্য নিয়মিত ভাব প্রকাশ করতে হবে বা নিজের বিভাজক রুটিন তৈরি করতে হয়েছিল ...
গুফা

4
@ ল্যান্ড্রো: Environment.NewLineসম্পত্তিটিতে সিস্টেমের জন্য ডিফল্ট নতুন লাইন রয়েছে। উইন্ডোজ সিস্টেমের উদাহরণস্বরূপ এটি হবে "\r\n"
গুফা

3
@ ল্যান্ড্রো: একটি অনুমান হবে যে প্রোগ্রামটি প্রতিটি লাইনের শেষে \nএকটি রেখে যাওয়ার পরে বিভক্ত হয় \r, তারপরে লাইনগুলিকে একটি \r\nমধ্যবর্তী ফাঁকা করে দেয়।
গুফা

3
@ সামুয়েল: সি \r\nসংকলনের (অন্যদের মধ্যে) ও পালানোর সিকোয়েন্সগুলির একটি বিশেষ অর্থ রয়েছে। ভিবিতে সেগুলি পালানোর ক্রম নেই, সুতরাং সেখানে those ধ্রুবকগুলি পরিবর্তে ব্যবহৃত হয়।
গুফা

2
আপনি যদি প্রচুর ওএস এর প্রচুর ফাইল থেকে ফাইল গ্রহণ করতে চান তবে আপনি শুরুতে "\ n \ r" এবং ডিলিমিটার তালিকার শেষে "\ r" যুক্ত করতে পারেন। আমি নিশ্চিত না যদিও এটি পারফরম্যান্সের পক্ষে হিট। ( En.wikipedia.org/wiki/Newline )
user420667

121

একটি ব্যবহার সম্পর্কে কি StringReader?

using (System.IO.StringReader reader = new System.IO.StringReader(input)) {
    string line = reader.ReadLine();
}

13
এটি আমার প্রিয়। আমি একটি এক্সটেনশান পদ্ধতিতে আবৃত করেছি এবং বর্তমান লাইনটি প্রদান করব: gist.github.com/ronnieoverby/7916886
রনি ওভারবি

3
এটিই কেবলমাত্র নন-রেজেক্স সমাধান আমি .netcf 3.5
কার্ল

8
বিশেষত দুর্দান্ত যখন ইনপুটটি বড় হয় এবং এটিকে সমস্ত কপির সাথে অনুলিপি করা ধীর / স্মৃতিশক্ত হয়ে ওঠে।
আলেজান্দ্রো

1
যেমন লেখা আছে, এই উত্তরটি কেবল প্রথম পংক্তিটি পড়ে। লুপের জন্য স্টিভ কুপারের উত্তরটি দেখুন whileযা এই উত্তরে যুক্ত করা উচিত।
স্টিভ

48

আপনার স্ট্রিংটি খুব সহজেই বিভক্ত করতে সক্ষম হওয়া উচিত, যেমন:

aString.Split(Environment.NewLine.ToCharArray());

46
একটি অ- * নিক্স সিস্টেমে যা নিউলাইন স্ট্রিংয়ের পৃথক অক্ষর, অর্থাৎ সিআর এবং এলএফ অক্ষরগুলিতে বিভক্ত হবে। এটি প্রতিটি লাইনের মধ্যে অতিরিক্ত খালি স্ট্রিং তৈরি করবে।
গুফা

আমি ভুল হলে আমাকে সংশোধন করুন, তবে that এবং n এর অক্ষরগুলিতে বিভক্ত হবে না?
আরসিআইএক্স

7
@ আরসিআইএক্স: না, \ r এবং \ n কোডগুলি একক অক্ষরকে উপস্থাপন করে। "\ R \ n" স্ট্রিংটি দুটি নয়, চারটি অক্ষর।
গুফা

10
আপনি যদি স্ট্রিংস্প্লিটঅপশনগুলি পরামিতি যোগ করেন em সরানএম্পটিএন্ট্রিগুলি, তবে এটি পুরোপুরি কার্যকর হবে।
রুবেন

18
@ রুবেন: না, তা হবে না। সার্জ ইতিমধ্যে তার উত্তরে পরামর্শ দিয়েছিল, এবং আমি অলড্রি ব্যাখ্যা করেছি যে এটি সংরক্ষণ করা উচিত মূল পাঠ্যের খালি লাইনগুলিও সরিয়ে ফেলবে।
গুফা

34

স্ট্রিং ব্যবহার এড়াতে চেষ্টা করুন a সাধারণ সমাধানের জন্য বিভক্ত করুন, কারণ আপনি ফাংশনটি যে কোনও জায়গায় ব্যবহার করবেন - মূল স্ট্রিং এবং বিভক্ত অনুলিপি, উভয়ই মেমরিতে ব্যবহার করবেন। আমার বিশ্বাস করুন যে আপনি স্কেল করা শুরু করার পরে এটি সমস্যার একটি নরক হতে পারে - ৩২-বিট ব্যাচ-প্রসেসিং অ্যাপ্লিকেশনটি 100 এমবি নথি প্রক্রিয়াকরণ করুন এবং আপনি আটটি সামনের থ্রেডে বিভক্ত হবেন। আমি আগে সেখানে ছিলাম না ...

পরিবর্তে, এর মতো একটি পুনরাবৃত্তি ব্যবহার করুন;

    public static IEnumerable<string> SplitToLines(this string input)
    {
        if (input == null)
        {
            yield break;
        }

        using (System.IO.StringReader reader = new System.IO.StringReader(input))
        {
            string line;
            while( (line = reader.ReadLine()) != null)
            {
                yield return line;
            }
        }
    }

এটি আপনাকে আপনার ডেটা ঘিরে আরও বেশি মেমরির দক্ষ লুপ করার অনুমতি দেবে;

foreach(var line in document.SplitToLines()) 
{
    // one line at a time...
}

অবশ্যই, আপনি যদি মেমরির মধ্যে এটি সব চান, আপনি এটি করতে পারেন;

var allTheLines = document.SplitToLines.ToArray();

আমি সেখানে ছিলাম ... (বৃহত্তর এইচটিএমএল ফাইলগুলি বিশ্লেষণ করে এবং মেমরির বাইরে চলেছে)। হ্যাঁ, স্ট্রিং এড়ান p স্প্লিট। স্ট্রিং.স্প্লিট ব্যবহারের ফলে লার্জ অবজেক্ট হিপ (এলওএইচ) ব্যবহারের ফলাফল হতে পারে - তবে আমি এটির 100% নিশ্চিত নই।
পিটার মর্টেনসেন

আপনি যদি স্প্লিটটোলাইনসকে একটি স্ট্যাটিক পদ্ধতি তৈরি করেন (যা এটি আপনার ডিডি বলে মনে হয়), তবে আপনি কীভাবে blah.SplitToLines.. উদাহরণস্বরূপ করতে পারেন document.SplitToLines...?
বার্লপ

আহ আমি দেখতে পাচ্ছি যে thisএটি আনুষ্ঠানিক পরামিতিগুলিকে এটিকে একটি এক্সটেনশন পদ্ধতি হিসাবে তৈরি করেছে।
বারলপ

26

গুফার উত্তরের ভিত্তিতে, একটি এক্সটেনশন ক্লাসে, ব্যবহার করুন:

public static string[] Lines(this string source) {
    return source.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
}

9

স্ট্রিং ভেরিয়েবলের জন্য s:

s.Split(new string[]{Environment.NewLine},StringSplitOptions.None)

এটি আপনার পরিবেশের লাইন শেষের সংজ্ঞা ব্যবহার করে। উইন্ডোজে লাইন এন্ডিংগুলি হ'ল সিআর-এলএফ (ক্যারেজ রিটার্ন, লাইন ফিড) বা সি # এর পালানোর অক্ষর \r\n

এটি একটি নির্ভরযোগ্য সমাধান, কারণ আপনি যদি লাইনগুলি পুনরায় সমন্বিত করেন তবে এটি String.Joinআপনার মূল স্ট্রিংয়ের সমান:

var lines = s.Split(new string[]{Environment.NewLine},StringSplitOptions.None);
var reconstituted = String.Join(Environment.NewLine,lines);
Debug.Assert(s==reconstituted);

কী করবেন না:

  • ব্যবহার করুন StringSplitOptions.RemoveEmptyEntries, কারণ এটি মার্কডাউন যেমন মার্কডাউন ভাঙ্গবে যেখানে খালি লাইনের সিন্ট্যাক্টিক উদ্দেশ্য রয়েছে।
  • বিভাজককে বিভক্ত করুন new char[]{Environment.NewLine}, কারণ উইন্ডোজে এটি প্রতিটি নতুন লাইনের জন্য একটি ফাঁকা স্ট্রিং উপাদান তৈরি করবে।

মূলত এখানে একই উত্তরটি শীর্ষ রেটযুক্ত, গৃহীত হিসাবে গৃহীত হয়েছে তবে এতে একটি দুর্দান্ত ইউনিট পরীক্ষা এবং ক্যাভ্যাট রয়েছে।
vapcguy

8

Regex এছাড়াও একটি বিকল্প:

    private string[] SplitStringByLineFeed(string inpString)
    {
        string[] locResult = Regex.Split(inpString, "[\r\n]+");
        return locResult;
    }

7
আপনি ঠিক লাইন মেলে, ফাঁকা রেখা সংরক্ষণের চান তাহলে, এই Regex স্ট্রিং ভালো হতে হবে: "\r?\n"
ররি ও'কেনে

7

আমি কেবল ভেবেছিলাম যে আমি আমার টু-বিট যুক্ত করব, কারণ এই প্রশ্নের অন্যান্য সমাধানগুলি পুনরায় ব্যবহারযোগ্য কোডের শ্রেণিবদ্ধকরণের মধ্যে পড়ে না এবং সুবিধাজনক নয়।

নিম্নলিখিত কোডের ব্লকটি stringঅবজেক্টটিকে প্রসারিত করে যাতে স্ট্রিংগুলির সাথে কাজ করার সময় এটি প্রাকৃতিক পদ্ধতি হিসাবে উপলব্ধ।

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.Collections.ObjectModel;

namespace System
{
    public static class StringExtensions
    {
        public static string[] Split(this string s, string delimiter, StringSplitOptions options = StringSplitOptions.None)
        {
            return s.Split(new string[] { delimiter }, options);
        }
    }
}

আপনি এখন যে .Split()কোনও স্ট্রিং থেকে নীচের মতো ফাংশনটি ব্যবহার করতে পারেন :

string[] result;

// Pass a string, and the delimiter
result = string.Split("My simple string", " ");

// Split an existing string by delimiter only
string foo = "my - string - i - want - split";
result = foo.Split("-");

// You can even pass the split options parameter. When omitted it is
// set to StringSplitOptions.None
result = foo.Split("-", StringSplitOptions.RemoveEmptyEntries);

একটি নতুন লাইন চরিত্রে বিভক্ত করতে কেবল পাসিমেল "\n"বা "\r\n"ডেলিমিটার প্যারামিটার হিসাবে।

মন্তব্য: মাইক্রোসফ্ট যদি এই ওভারলোডটি প্রয়োগ করে তবে ভাল লাগবে।


Environment.Newlineহয় হয় হার্ড কোডিং \nবা পছন্দ হয় \r\n
মাইকেল ব্ল্যাকবার্ন

3
@ মিশেলব্ল্যাকবার্ন - এটি একটি অবৈধ বিবৃতি কারণ কোনও প্রসঙ্গ নেই। Environment.Newlineক্রস প্ল্যাটফর্মের সামঞ্জস্যের জন্য, বর্তমান অপারেটিং সিস্টেমের চেয়ে বিভিন্ন লাইন টার্মিনেশন ব্যবহার করে ফাইলগুলির সাথে কাজ করার জন্য নয়। আরও তথ্যের জন্য এখানে দেখুন , তাই এটি বিকাশকারী কী কাজ করছে তার উপর নির্ভর করে। Environment.Newlineওএসের মধ্যে লাইন রিটার্ন টাইপের কোনও ধারাবাহিকতা নেই তা নিশ্চিত করার ব্যবহার , যেখানে 'হার্ড-কোডিং' বিকাশকারীকে সম্পূর্ণ নিয়ন্ত্রণ দেয়।
ক্রাং প্রাইম

2
@ মিশেল ব্ল্যাকবার্ন - আপনার অভদ্র হওয়ার দরকার নেই। আমি কেবল তথ্য সরবরাহ করছিলাম। .Newlineযাদু নয়, হুডের নীচে এটি ইউনিক্স বা উইন্ডোতে চলছে কিনা তা স্যুইচের উপর ভিত্তি করে কেবল উপরে দেওয়া স্ট্রিং is সবচেয়ে নিরাপদ বাজি, প্রথমে সমস্ত "\ r \ n" এর জন্য একটি স্ট্রিং প্রতিস্থাপন করা এবং তারপরে "\ n" এ বিভক্ত হওয়া। যেখানে .Newlineব্যর্থতা ব্যবহার করা হয়, আপনি যখন অন্য প্রোগ্রামগুলির দ্বারা সংরক্ষিত ফাইলগুলির সাথে কাজ করছেন যা লাইন ব্রেকগুলির জন্য আলাদা পদ্ধতি ব্যবহার করে। আপনি যখন প্রতিবার পড়েন ফাইলটি সর্বদা আপনার বর্তমান ওএসের লাইন ব্রেকগুলি ব্যবহার করে তা আপনি যদি জানেন তবে এটি ভাল কাজ করে।
ক্রাং প্রাইম

সুতরাং আমি যা শুনছি তা হ'ল সর্বাধিক পঠনযোগ্য উপায় (সম্ভবত উচ্চতর মেমরির ব্যবহার) foo = foo.Replace("\r\n", "\n"); string[] result = foo.Split('\n');। আমি কি সঠিকভাবে বুঝতে পারি যে এটি সমস্ত প্ল্যাটফর্মে কাজ করে?
জন দো

4

আমি বর্তমানে VB.NET এ এই ফাংশনটি (অন্যান্য উত্তরের ভিত্তিতে) ব্যবহার করছি:

Private Shared Function SplitLines(text As String) As String()
    Return text.Split({Environment.NewLine, vbCrLf, vbLf}, StringSplitOptions.None)
End Function

এটি প্রথমে প্ল্যাটফর্ম-স্থানীয় নতুন লাইনে বিভক্ত হওয়ার চেষ্টা করে এবং তারপরে প্রতিটি সম্ভাব্য নতুন লাইনে ফিরে যায়।

আমি এখন পর্যন্ত এক শ্রেণীর ভিতরে এটির প্রয়োজন ছিল needed যদি এটি পরিবর্তন হয় তবে আমি সম্ভবত এটি তৈরি করব Publicএবং এটি একটি ইউটিলিটি ক্লাসে স্থানান্তর করব এবং সম্ভবত এটি একটি এক্সটেনশন পদ্ধতিও তৈরি করব।

ভাল পরিমাপের জন্য কীভাবে লাইনগুলি ব্যাক আপ করা যায় তা এখানে রয়েছে:

Private Shared Function JoinLines(lines As IEnumerable(Of String)) As String
    Return String.Join(Environment.NewLine, lines)
End Function

@ সামুয়েল - উদ্ধৃতিগুলি নোট করুন। তাদের আসলে এর অর্থ আছে। "\r"= রিটার্ন "\r\n"= রিটার্ন + নতুন লাইন। (দয়া করে এই পোস্টটি এবং গৃহীত সমাধানটি এখানে
ক্র্যাং প্রাইম

@ ক্রাং হুম .. আমি দীর্ঘদিন ধরে। নেট নিয়ে কাজ করি নি। আমি যদি অবাক হব যে অনেক লোক যদি ভুল উত্তর দেয়। আমি দেখতে পাচ্ছি যে আমি গুফার জবাব সম্পর্কেও মন্তব্য করেছি, এবং সেখানে স্পষ্টতা পেয়েছি। আমি এই উত্তর আমার মন্তব্য মুছে ফেলেছি। সতর্ক থাকুন জন্য ধন্যবাদ।
স্যামুয়েল 14

2

ভাল, আসলে বিভক্ত করা উচিত:

//Constructing string...
StringBuilder sb = new StringBuilder();
sb.AppendLine("first line");
sb.AppendLine("second line");
sb.AppendLine("third line");
string s = sb.ToString();
Console.WriteLine(s);

//Splitting multiline string into separate lines
string[] splitted = s.Split(new string[] {System.Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);

// Output (separate lines)
for( int i = 0; i < splitted.Count(); i++ )
{
    Console.WriteLine("{0}: {1}", i, splitted[i]);
}

2
মুছে ফেলা অপশনটি পাঠ্য থেকে খালি লাইনগুলি সরিয়ে ফেলবে। এটি কিছু পরিস্থিতিতে কাম্য হতে পারে, তবে একটি স্পষ্ট বিভাজনের খালি লাইনগুলি সংরক্ষণ করা উচিত।
গুফা

হ্যাঁ, আপনি ঠিক বলেছেন, আমি কেবল এই ধারণাটি তৈরি করেছি, এটি ... ভাল, ফাঁকা রেখাগুলি আকর্ষণীয় নয়;)
ম্যাকিয়াকটালাস্কা

1
string[] lines = text.Split(
  Environment.NewLine.ToCharArray(), 
  StringSplitOptions.RemoveEmptyStrings);

RemoveEmptyStrings বিকল্প নিশ্চিত করুন যে আপনি \ N কারণে খালি ভুক্তি একটি পান \ r নিম্নলিখিত হবে না করতে হবে

(মন্তব্যগুলি প্রতিবিম্বিত করতে সম্পাদনা করুন :) নোট করুন এটি পাঠ্যে আসল খালি লাইনগুলিও ফেলে দেবে। এটি সাধারণত আমি যা চাই তা কিন্তু এটি আপনার প্রয়োজন হতে পারে না।


মুছে ফেলা বিকল্পগুলি খালি লাইনগুলিও সরিয়ে ফেলবে, সুতরাং পাঠ্যে খালি লাইন থাকলে এটি সঠিকভাবে কাজ করে না।
গুফা

আপনি সম্ভবত খালি খালি লাইনগুলি সংরক্ষণ করতে চান: \ r \ n \ r \ n
স্লিম

0

আমি এনভায়রনমেন্ট.নিউলাইন সম্পর্কে জানতাম না, তবে আমার ধারণা এটি খুব ভাল সমাধান।

আমার চেষ্টা হত:

        string str = "Test Me\r\nTest Me\nTest Me";
        var splitted = str.Split('\n').Select(s => s.Trim()).ToArray();

অতিরিক্ত .Trim এখনও উপস্থিত থাকতে পারে এমন কোনও \ r বা remove n সরিয়ে দেয় (যেমন উইন্ডোতে যখন থাকে তবে ওএস এক্স নিউলাইন অক্ষরের সাথে একটি স্ট্রিং বিভক্ত করা হয়)। সম্ভবত দ্রুততম পদ্ধতি না হলেও।

সম্পাদনা করুন:

মতামতগুলি সঠিকভাবে নির্দেশিত হিসাবে, এটি লাইনের শুরুতে বা নতুন লাইন ফিডের আগে যে কোনও সাদা স্থানকে সরিয়ে দেয়। আপনার যদি সেই সাদা স্থান সংরক্ষণের প্রয়োজন হয় তবে অন্য বিকল্পগুলির মধ্যে একটি ব্যবহার করুন।


ট্রিম লাইনের শুরু এবং শেষে যে কোনও সাদা স্থান সরিয়ে ফেলবে, উদাহরণস্বরূপ ইনডেন্টেশন।
গুফা

".Trim এমন কোনও \ r বা \ n সরিয়ে দেয় যা এখনও উপস্থিত থাকতে পারে" - আউট। পরিবর্তে মজবুত কোড কেন লিখবেন না?
bzlm

হতে পারে আমি প্রশ্নটি ভুল পেয়েছি, তবে এটি যে সাদা অংশটি অবশ্যই সংরক্ষণ করা উচিত তা / তা পরিষ্কার নয়। অবশ্যই আপনি ঠিক বলেছেন, ট্রিম () হোয়াইটস্পেসও সরিয়ে দেয়।
সর্বোচ্চ

1
@ ম্যাক্স: বাহ, যতক্ষণ না আমি আমার বসকে বলব যে কোডটি এমন কোনও কিছু করার অনুমতি দিয়েছে যা নির্দিষ্টকরণে বিশেষভাবে বাতিল নয় ...;)
গুফা

-2

নির্বোধ উত্তর: একটি অস্থায়ী ফাইলে লিখুন যাতে আপনি সম্মানজনক ব্যবহার করতে পারেন File.ReadLines

var s = "Hello\r\nWorld";
var path = Path.GetTempFileName();
using (var writer = new StreamWriter(path))
{
    writer.Write(s);
}
var lines = File.ReadLines(path);

1
এড়িয়ে চলুন var, কারণ এটি ভেরিয়েবলের ধরণ নির্ধারণ করে না, সুতরাং আপনি কীভাবে সেই বস্তুটি ব্যবহার করবেন, বা সেই বস্তুটি কী উপস্থাপন করে তা আপনি বুঝতে পারবেন না। এছাড়াও, এটি লাইনগুলি লিখতে দেখায় এবং কোনও ফাইলের নামও নির্দিষ্ট করে না, তাই আমি সন্দেহ করি এটি কার্যকর হবে। তারপরে, পড়ার সময়, ফাইলটির পথটি আবার নির্দিষ্ট করা হয়নি। Assuming যে pathহয় C:\Temp\test.txt, তাহলে আপনি থাকা উচিত string[] lines = File.ReadLines(path);
vapcguy

1
@vapcguy আমি কী পড়েছি? - আমি পোস্টটি পুনরায় পড়ার বা কনসোল প্রোগ্রামে এটি ডিবাগ করার পরামর্শ দেব কারণ আপনি যা বলেছেন তা সম্পূর্ণ ভুল plain পথটি पथ সেট করা হয়েছে .GETTempFileName | বর্ণটি সি # তে একটি সাধারণ এবং প্রস্তাবিত সংজ্ঞা - এটি কোনও ভেরিয়েবলের ধরণের সংজ্ঞা দেয় ...... সম্পাদনা: আমি বলি না এটি একটি ভাল সমাধান
কোয়ানবক

@koanbock ঠিক আছে, তাই আমি তাকিয়ে Path.GetTempFileName msdn.microsoft.com/en-us/library/... এবং এটা বলে এটি একটি শূন্য-বাইট ফাইল & আয় "যে ফাইলের সম্পূর্ণ পাথ" তৈরি করে। আমি শপথ করতে পারি আমি এর আগে চেষ্টা করেছিলাম এবং এটি একটি ব্যতিক্রম দেয় কারণ এটি কোনও ফাইল খুঁজে পায় নি, তবে পরিবর্তে ফোল্ডারের অবস্থান ফিরে পেয়েছিল। আমি ব্যবহারের জন্য যুক্তিগুলি জানি var, তবে আমি বলব এটি প্রস্তাবিত নয় কারণ এটি ভেরিয়েবল অবজেক্টটি কী তা প্রদর্শন করে না। এটি এটিকে বিস্মৃত করে।
vapcguy

-3
using System.IO;

string textToSplit;

if (textToSplit != null)
{
    List<string> lines = new List<string>();
    using (StringReader reader = new StringReader(textToSplit))
    {
        for (string line = reader.ReadLine(); line != null; line = reader.ReadLine())
        {
            lines.Add(line);
        }
    }
}

-5

খুব সহজ, আসলে।

VB.NET:

Private Function SplitOnNewLine(input as String) As String
    Return input.Split(Environment.NewLine)
End Function

সি #:

string splitOnNewLine(string input)
{
    return input.split(environment.newline);
}

4
সম্পূর্ণ ভুল এবং কাজ করে না। প্লাস, সি # তে, এটি Environment.NewLineঠিক ভিবি- র মতো।
vapcguy

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