방금 C #을 배우기 시작했고 배열 소개에서 변수를 배열로 설정하는 방법을 보여 주었지만 할당시 배열의 길이를 지정해야하는 것 같습니다. 정렬?
답변
배열에는 길이가 지정되어야합니다. 여러 요소를 허용하려면 List
클래스를 사용하십시오 .
예를 들면 :
List<int> myInts = new List<int>();
myInts.Add(5);
myInts.Add(10);
myInts.Add(11);
myInts.Count // = 3
답변
List<>
길이를 알 수없는 ‘배열’을 만드는 데 사용 합니다.
.가 List<>.ToArray()
아닌 실제 배열을 반환하는 데 사용 합니다 List
.
var list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
var array = list.ToArray();
답변
약간의 배경 정보 :
말했듯이, 동적 컬렉션을 원하면 List<T>
. 내부적으로 List는 스토리지에도 배열을 사용합니다. 이 배열은 다른 배열과 마찬가지로 고정 된 크기를 갖습니다. 배열이 크기가있는 것으로 선언되면 변경되지 않습니다. 에 항목을 List
추가하면 배열에 추가됩니다. 처음에는 List
길이가 16이라고 생각하는 배열로 시작합니다. 17 번째 항목을에 추가하려고 List
하면 새 배열이 할당되며 이는 이전 배열의 두 배인 것 같습니다. , 그래서 32 항목. 그런 다음 이전 배열의 내용이 새 배열로 복사됩니다. 따라서 List
외부 관찰자에게는 동적으로 보일 수 있지만 내부적으로는 규칙도 준수해야합니다.
그리고 짐작 하셨겠지만, 배열의 복사 및 할당은 자유롭지 않으므로 가능한 한 적은 수를 목표로해야 List
하며 배열의 초기 크기를 (의 생성자에서 ) 지정할 수 있습니다 . 완벽한 시나리오에서는 원하는 모든 것을 담을 수있을만큼 충분히 큽니다. 그러나 이것은 마이크로 최적화이며 그것이 당신에게 중요하지 않을 것 같지만 실제로 무엇을하고 있는지 아는 것은 항상 좋습니다 .
답변
크기가 변수로 설정된 배열을 만들 수 있습니다.
int size = 50;
string[] words = new string[size]; // contains 50 strings
그러나 100 단어가 필요하다고 결정하면 나중에 그 크기를 변경할 수 없습니다. 크기가 정말 동적이어야하는 경우 다른 종류의 데이터 구조를 사용해야합니다. 시험List
.
답변
ArrayList
.NET 1.x에서 if를 사용 하거나List<yourtype>
.NET 2.0 또는 3.x .
System.Collections
및 에서 검색하십시오 System.Collections.Generics
.
답변
데이터가 고유 한 경우 사전을 살펴볼 수도 있습니다. 그러면 작업 할 두 개의 열이 제공됩니다.
사용자 이름, 총 청구서
값만 검색하고 업데이트 할 수있는 많은 내장 도구를 제공합니다.
답변
var yummy = new List<string>();
while(person.FeelsHappy()) {
yummy.Add(person.GetNewFavoriteFood());
}
Console.WriteLine("Sweet! I have a list of size {0}.", list.Count);
Console.WriteLine("I didn't even need to know how big to make it " +
"until I finished making it!");
