색인으로 목록 항목 가져 오기


321

최근에 Java에서 c #을 사용하여 시작했습니다. 색인으로 목록 항목을 얻는 방법을 찾지 못하는 것 같습니다. Java에서 목록의 첫 번째 항목을 얻으려면 다음과 같습니다.

list1.get(0);

C #에서 이에 상응하는 것은 무엇입니까?


4
[] 연산자 또는 ElementAt () 메서드 사용 여부에 대한 자세한 내용은 stackoverflow.com/questions/5326874/… 를 참조하십시오 .
ngm

답변:


362
list1[0];

목록 유형에 인덱서가 정의되어 있다고 가정합니다.


5
배열과 같은 객체 인 목록에 액세스 할 수있는 이유를 설명하는 유일한 대답
PrashanD

목록의 객체 사본을 반환합니까? obj = 목록 [0]; list.clear (); // obj가 여전히 채워 집니까?
Paul McCarthy

1
@Paul McCarthy : 당신은 이것을 쉽게 테스트 할 수 있지만, 그렇습니다. 리스트는 객체에 대한 참조를 보유합니다. 목록을 지우면 해당 목록에있는 개체에는 영향을 미치지 않습니다. 해당 객체에 대한 다른 참조가 없으면 특정 시점에서 가비지 수집됩니다.
미치 밀

241

목록에서 ElementAt 확장 메소드를 사용할 수 있습니다.

예를 들면 다음과 같습니다.

// Get the first item from the list

using System.Linq;

var myList = new List<string>{ "Yes", "No", "Maybe"};
var firstItem = myList.ElementAt(0);

// Do something with firstItem

24
ElementAt ()은을 요구합니다 using System.Linq;.
ngm

16
표준 myList[0]표기법 보다 이점이 있습니까?
AnalogWeapon

5
"왜 Enumerable.ElementAt () 대 [] 연산자를 사용합니까?" stackoverflow.com/questions/5326874/…
Lavande

3
.ElementAtOrDefault();
amit jha

@AnalogWeapon 그렇습니다. 널 안전 체인의 일부로 사용 myCollectionWhichMightBeNull?.ElementAt(0)하거나 존재하지 않는 요소를 다시 보호하기 위해 사용할 수 있습니다 .myCollection.ElementAtOrDefault(0)?.SomeProperty
Chris Peacock


18

오래된 질문이지만이 스레드가 최근에 활성화되어 있음을 알았으므로 계속해서 2 센트를 던져 보겠습니다.

Mitch가 말한 것과 거의 같습니다. 적절한 인덱싱을 가정하면 배열에 액세스하는 것처럼 대괄호 표기법을 사용할 수 있습니다. 그러나 숫자 인덱스를 사용하는 것 외에도 멤버의 이름이 특정인 경우 다음과 같이 입력하여 일종의 동시 검색 / 액세스를 수행 할 수 있습니다.

var temp = list1["DesiredMember"];

더 많이 알지?


0

.NET List데이터 구조는 Array"변경 가능한 쉘"에 있습니다.

따라서 다음과 같은 요소에 액세스하기 위해 색인을 사용할 수 있습니다.

var firstElement = myList[0];
var secondElement = myList[1];

시작 C #을 8.0 사용할 수있는 IndexRange요소에 액세스하기위한 클래스. 시퀀스의 끝에서 액세스하거나 시퀀스의 특정 부분에 액세스 할 수 있습니다.

var lastElement = myList[^1]; // Using Index
var fiveElements = myList[2..7]; // Using Range, note that 7 is exclusive

인덱스와 범위를 함께 결합 할 수 있습니다.

var elementsFromThirdToEnd = myList[2..^0]; // Index and Range together

또한 LINQ ElementAt방법을 사용할 수 있지만 99 %의 경우 실제로 필요하지 않으며 성능 솔루션이 느려집니다.


0

색인을 사용하여 목록 요소에 액세스 할 수 있습니다.

List<string> list1 = new List<string>();
list1[0] //for getting the first element of the list
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.