c# - स्ट्रिंग[] सरणी में स्ट्रिंग कैसे जोड़ें? कोई नहीं है। समारोह जोड़ें



arrays long-filenames (8)

Eazy

// Create list
var myList = new List<string>();

// Add items to the list
myList.Add("item1");
myList.Add("item2");

// Convert to array
var myArray = myList.ToArray();

https://ffff65535.com

private string[] ColeccionDeCortes(string Path)
{
    DirectoryInfo X = new DirectoryInfo(Path);
    FileInfo[] listaDeArchivos = X.GetFiles();
    string[] Coleccion;

    foreach (FileInfo FI in listaDeArchivos)
    {
        //Add the FI.Name to the Coleccion[] array, 
    }

    return Coleccion;
}

मैं FI.Name को स्ट्रिंग में कनवर्ट करना चाहता हूं और फिर इसे अपनी सरणी में जोड़ना चाहता हूं। मैं यह कैसे कर सकता हूँ?


System.Collections.Generic से सूची <T> का उपयोग करें

List<string> myCollection = new List<string>();

…

myCollection.Add(aString);

यदि आप वास्तव में अंत में एक सरणी चाहते हैं, तो उपयोग करें

myCollection.ToArray();

आप एक इंटरफ़ेस को सारणित करने से बेहतर हो सकते हैं, जैसे कि IENumerable, फिर संग्रह को वापस कराना।

संपादित करें: यदि आपको किसी सरणी का उपयोग करना है , तो आप इसे सही आकार (यानी आपके पास FileInfo की संख्या) को पूर्वस्थापित कर सकते हैं। फिर, फ़ोरैच लूप में, सरणी इंडेक्स के लिए काउंटर बनाए रखें जिसे आपको अगली अपडेट करने की आवश्यकता है।

    private string[] ColeccionDeCortes(string Path)
    {
        DirectoryInfo X = new DirectoryInfo(Path);
        FileInfo[] listaDeArchivos = X.GetFiles();
        string[] Coleccion = new string[listaDeArchivos.Length];
        int i = 0;

        foreach (FileInfo FI in listaDeArchivos)
        {
            Coleccion[i++] = FI.Name;
            //Add the FI.Name to the Coleccion[] array, 
        }

        return Coleccion;
    }

आप foreach का उपयोग करने के बजाय एक लूप का उपयोग क्यों नहीं करते हैं। इस परिदृश्य में, फ़ोरैच लूप के वर्तमान पुनरावृत्ति की अनुक्रमणिका प्राप्त करने का कोई तरीका नहीं है।

फ़ाइल का नाम स्ट्रिंग [] में इस तरह जोड़ा जा सकता है,

private string[] ColeccionDeCortes(string Path)
{
  DirectoryInfo X = new DirectoryInfo(Path);
  FileInfo[] listaDeArchivos = X.GetFiles();
  string[] Coleccion=new string[listaDeArchivos.Length];

  for (int i = 0; i < listaDeArchivos.Length; i++)
  {
     Coleccion[i] = listaDeArchivos[i].Name;
  }

  return Coleccion;
}

आप किसी सरणी में आइटम नहीं जोड़ सकते हैं, क्योंकि इसकी लंबाई तय हो गई है, जो आप खोज रहे हैं वह एक List<string> , जिसे बाद में List<string> का उपयोग कर सरणी में बदल दिया जा सकता है। list.ToArray()


एंड्रॉइड में स्पिनर के लिए गतिशील मूल्य ऐरे तैयार करने के लिए यह कोड बहुत अच्छा काम करता है:

    List<String> yearStringList = new ArrayList<>();
    yearStringList.add("2017");
    yearStringList.add("2018");
    yearStringList.add("2019");


    String[] yearStringArray = (String[]) yearStringList.toArray(new String[yearStringList.size()]);

मैं इस मामले में एक सरणी का उपयोग नहीं करता। इसके बजाय मैं एक स्ट्रिंगकोलेक्शन का उपयोग करूंगा।

using System.Collections.Specialized;

private StringCollection ColeccionDeCortes(string Path)   
{

    DirectoryInfo X = new DirectoryInfo(Path);

    FileInfo[] listaDeArchivos = X.GetFiles();
    StringCollection Coleccion = new StringCollection();

    foreach (FileInfo FI in listaDeArchivos)
    {
        Coleccion.Add( FI.Name );
    }
    return Coleccion;
}

सरणी को साफ़ करने और एक ही समय में इसके तत्वों की संख्या = 0 बनाने के लिए, इसका उपयोग करें ..

System.Array.Resize(ref arrayName, 0);

string[] MyArray = new string[] { "A", "B" };
MyArray = new List<string>(MyArray) { "C" }.ToArray();
//MyArray = ["A", "B", "C"]





long-filenames