de-vraag
  • Otázky
  • Značky
  • Používatelia
Oznámenia
Odmeny
Registrácia
Po registrácii budete informovaní o odpovediach a komentároch na vaše otázky.
Prihlásiť sa
Ak už máte konto, prihláste sa a skontrolujte nové oznámenia.
Za pridané otázky, odpovede a komentáre budú udelené odmeny.
Viac na
Zdroj
Upraviť
Sergio Tapia
Sergio Tapia
Question

Ako pridať reťazec do poľa string[]? Neexistuje žiadna funkcia .Add

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;
}

Chcel by som previesť FI.Name na reťazec a potom ho pridať do môjho poľa. Ako to môžem urobiť?

203 2009-09-17T17:38:24+00:00 3
 FishBasketGordo
FishBasketGordo
Edited question 13 február 2012 в 5:08
Programovanie
arrays
c#
long-filenames
This question has 1 odpoveď in English, to read them log in to your account.
Solution / Answer
Saulius Valatka
Saulius Valatka
17 september 2009 в 5:40
2009-09-17T17:40:27+00:00
Viac na
Zdroj
Upraviť
#9488083

Do poľa nemôžete pridávať položky, pretože má pevnú dĺžku, hľadáte List<string>, ktorý môžete neskôr zmeniť na pole pomocou list.ToArray().

363
0
Adam Wright
Adam Wright
17 september 2009 в 5:39
2009-09-17T17:39:36+00:00
Viac na
Zdroj
Upraviť
#9488082

Použiť List z System.Collections.Generic

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

…

myCollection.Add(aString);

Alebo skrátene (pomocou inicializátora kolekcie):

List<string> myCollection = new List<string> {aString, bString}

Ak naozaj chcete mať na konci pole, použite

myCollection.ToArray();

Možno by bolo lepšie abstrahovať na rozhranie, napríklad IEnumerable, a potom len vrátiť kolekciu.

Edit: Ak musíte použiť pole, môžete ho predalokovať na správnu veľkosť (t. j. počet FileInfo, ktoré máte). Potom v cykle foreach udržujte počítadlo pre index poľa, ktorý potrebujete aktualizovať ako ďalší.

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;
}
Guybrush Threepwood
Guybrush Threepwood
Edited answer 27 september 2019 в 10:13
58
0
 xcud
xcud
17 september 2009 в 5:46
2009-09-17T17:46:05+00:00
Viac na
Zdroj
Upraviť
#9488084
string[] coleccion = Directory.GetFiles(inputPath)
    .Select(x => new FileInfo(x).Name)
    .ToArray();
 xcud
xcud
Edited answer 13 február 2012 в 5:04
3
0
Pridať otázku
Kategórie
Všetky
Technológia
Kultúra / Rekreácia
Život / Umenie
Veda
Profesionálne
Obchod
Používatelia
Všetky
New
Popular
1
Jasur Fozilov
Registered pred 8 hodinami
2
Zuxriddin Muydinov
Registered pred 23 hodinami
3
Денис Анненский
Registered pred 3 dňami
4
365
Registered pred týždňom
5
True Image
Registered pred týždňom
DE
EL
ES
FR
ID
IT
JA
KO
NL
PT
RU
SK
ZH
© de-vraag 2022
Zdroj
stackoverflow.com
na základe licencie cc by-sa 3.0 s uvedením autora