সি # ফাঁকা স্ট্রিং অ্যারে ঘোষণা করুন


152

আমাকে একটি খালি স্ট্রিং অ্যারে ঘোষণা করতে হবে এবং আমি এই কোডটি ব্যবহার করছি

string[] arr = new String[0]();

তবে আমি "পদ্ধতির নাম প্রত্যাশিত" ত্রুটি পেয়েছি।

কোনো সমস্যা?


2
আপনার খালি অ্যারে দরকার কেন? আপনি কি করতে চেষ্টা করছেন?
মিঃ টি।

7
@জনাব টি. প্রশ্নের সাথে আসলেই প্রাসঙ্গিক নয়।
জেমস

1
@ জেমস - তিনি যা করতে চেষ্টা করছেন তা করার আরও একটি দুর্দান্ত উপায় হতে পারে।
মিঃ টি।

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

2
যে কারণে আপনি শূন্য ফিরে আসতে চান না তা হ'ল পদ্ধতির গ্রাহককে নালার জন্য পরীক্ষা করতে হবে। উদাহরণস্বরূপ, পদ্ধতির ভোক্তা প্রত্যাবর্তিত মানটিকে ভবিষ্যদ্বাণীতে রেখে দিতে পারে এবং যদি খালি অ্যারেটি ফিরে আসে তবে কোনও সমস্যা নেই। যাইহোক, যদি
নালটি

উত্তর:


264

এটা চেষ্টা কর

string[] arr = new string[] {};

1
সবাইকে ধন্যবাদ ... কেন আমাকে জিজ্ঞাসা করবেন না, তবে একটাই উপায় ছিল: স্ট্রিং [] আরার = নতুন স্ট্রিং [0] স্ট্রিং হিসাবে [];
অ্যাকোয়ানাত

2
অতীশের পদ্ধতিটি ভেরিয়েবল ব্যবহার সম্পর্কে ভিজ্যুয়াল স্টুডিওর অভিযোগ কাজ করেছে এবং যদি এটি যদি একটি বিবৃতিতে অর্পণ করা হয় তবে শুরু করা হয় না
জো

1
অন্য বিকল্পটি হ'লc# Array.Empty<string>()
জান্নিক ব্রেইনিস

68

আপনার বাক্য গঠন ভুল:

string[] arr = new string[]{};

অথবা

string[] arr = new string[0];

1
আপনার উদাহরণগুলিতে কেন স্ট্রিং মূলধন এবং মূলধন নয়?
ইটনাটালি

1
@ নিউস্ট্যাকএক্সচেঞ্জইনস্ট্যান্স, প্রশ্ন থেকে কেবল "যেমন আছে" কোড অনুলিপি করেছেন। উভয় লাইনই সূক্ষ্ম সংকলন করে, যদিও আমি একমত যে এক স্টাইল অনুসরণ করা আরও ভাল।
আন্দ্রেই

15

যদি আপনি .net 4.6 ব্যবহার করে থাকেন তবে তাদের কিছু নতুন বাক্য গঠন রয়েছে যা আপনি ব্যবহার করতে পারেন:

using System;  // To pick up definition of the Array class.

var myArray = Array.Empty<string>();

দুর্দান্ত কৌশল! এবং এটি আইলিস্ট <টি> সাথেও কাজ করে: আইলিস্ট <স্ট্রিং> এক্স = অ্যারে E
জুনটজু


8

অ্যারে'র কনস্ট্রাক্টর আলাদা। খালি স্ট্রিং অ্যারে করার কয়েকটি উপায় এখানে রয়েছে:

var arr = new string[0];
var arr = new string[]{};
var arr = Enumerable.Empty<string>().ToArray()

(দুঃখিত, মোবাইলে)


1

এই কোঁকড়ানো জিনিসগুলি কখনও কখনও মনে রাখা শক্ত হয়, এজন্যই এখানে দুর্দান্ত ডকুমেন্টেশন রয়েছে :

// Declare a single-dimensional array  
int[] array1 = new int[5];

এই উত্তরটি সম্পাদনা করার দরকার নেই, কারণ উত্তরগুলি জেরাল উদ্দেশ্যটি উপস্থাপন করে, এবং নির্দিষ্ট প্রতি প্রশ্নের উত্তর হিসাবে নয়। এটি "অ্যারে ঘোষণা এবং প্রারম্ভিককরণের সিনট্যাক্সটি কী" এর উত্তর দেয় এবং আমি পোস্ট করা লিংকের একটি উদ্ধৃতি। ওপি পছন্দ হলে তার intসাথে প্রতিস্থাপন করতে পারে string
কোডকাস্টার

1

আপনার বাক্য গঠনটি অবৈধ।

string[] arr = new string[5];

এটি তৈরি করবে arr, স্ট্রিংগুলির একটি রেফারেন্সড অ্যারে, যেখানে এই অ্যারের সমস্ত উপাদান রয়েছে null। (যেহেতু স্ট্রিংগুলি রেফারেন্সের ধরণ )

এই অ্যারে থেকে উপাদানগুলি রয়েছে arr[0]করার arr[4]newঅপারেটর অ্যারে তৈরি এবং তাদের ডিফল্ট মান অ্যারে উপাদানের আরম্ভ করতে ব্যবহৃত হয়। এই উদাহরণে, সমস্ত অ্যারে উপাদানগুলিতে সূচনা হয় null

Single-Dimensional Arrays (C# Programming Guide)


সবাইকে ধন্যবাদ ... কেন আমাকে জিজ্ঞাসা করবেন না, তবে একটাই উপায় ছিল: স্ট্রিং [] আরার = নতুন স্ট্রিং [0] স্ট্রিং হিসাবে [];
অ্যাকোয়ানাত

0

যদি আপনাকে অবশ্যই একটি খালি অ্যারে তৈরি করতে হয় তবে আপনি এটি করতে পারেন:

string[] arr = new string[0];

আপনি যদি আকার সম্পর্কে না জানেন তবে আপনি List<string>পাশাপাশি পছন্দ করতে পারেন

var valStrings = new List<string>();

// do stuff...

string[] arrStrings = valStrings.ToArray();

আমি খুবই দুঃখিত. আমি ভুলক্রমে ভুল সম্পাদনা করে আপনার পোস্ট নষ্ট করে দিয়েছি।
সোনার গনল

-3

নিম্নলিখিতটি সূক্ষ্মভাবে কাজ করা উচিত।

string[] arr = new string[] {""};

5
এটি একটি খালি অ্যারে নয়, কারণ এতে একটি উপাদান রয়েছে যা খালি স্ট্রিং। arr.Length () ফিরে আসবে 1.
গিলারমো প্রান্ডি

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