[c#] string [] 배열에 문자열을 추가하는 방법? .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;
}
를 FI.Name
문자열 로 변환 한 다음 배열에 추가하고 싶습니다. 어떻게해야합니까?
답변
길이가 고정되어 있으므로 배열에 항목을 추가 할 수 없습니다. 당신이 찾고있는 것은입니다 List<string>
나중에 사용하여 배열로 전환 될 수있는 list.ToArray()
, 예를
List<string> list = new List<string>();
list.Add("Hi");
String[] str = list.ToArray();
답변
또는 배열의 크기를 조정할 수 있습니다.
Array.Resize(ref array, array.Length + 1);
array[array.Length - 1] = "new string";
답변
System.Collections.Generic에서 List <T> 사용
List<string> myCollection = new List<string>();
…
myCollection.Add(aString);
또는 속기 (컬렉션 이니셜 라이저 사용) :
List<string> myCollection = new List<string> {aString, bString}
마지막에 배열을 정말로 원한다면
myCollection.ToArray();
IEnumerable과 같은 인터페이스로 추상화 한 다음 컬렉션을 반환하는 것이 좋습니다.
편집 : 당신이 경우에 있어야 배열을 사용하여, 당신은 적당한 크기 (당신이 가지고에서는 FileInfo의 수를 즉)에 미리 할당 할 수 있습니다. 그런 다음 foreach 루프에서 다음에 업데이트해야하는 배열 인덱스의 카운터를 유지하십시오.
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;
}
답변
이지
// 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();
답변
내가 실수하지 않으면 :
MyArray.SetValue(ArrayElement, PositionInArray)
답변
이것이 필요할 때 문자열에 추가하는 방법입니다.
string[] myList;
myList = new string[100];
for (int i = 0; i < 100; i++)
{
myList[i] = string.Format("List string : {0}", i);
}
답변
string[] coleccion = Directory.GetFiles(inputPath)
.Select(x => new FileInfo(x).Name)
.ToArray();