{"a1", "a2", "b0", "b2", "c1", ...}
과 같은 문자열의 정렬 된 목록이 있고 "b"에서 시작하는 첫 번째 요소의 색인을 결정하려고한다고 가정 해보십시오. .NET 4에서 가장 빠른 방법은 무엇입니까? 기억은 문제가되지 않습니다. 대한 경우정렬 된 목록의 부분 키 일치 <string>
1
A
답변
0
"가장 빠른"당신이 다음 대략 이런
뭔가 "구현하는 가장 쉬운 방법"을 의미 :
static int FirstIndex(this IEnumerable<T> coll, Predicate<T> pred)
{
var it = coll.GetEnumerator();
int index = 0;
while(it.MoveNext())
{
if(pred(it.Current))
{
return index;
}
index++;
}
throw new ObjectNotFoundException();
}
{"a1", "a2", "b0", "b2", "c1"}.FirstIndex(s => s.StartsWith("b"));
또는 F 번호 (주의에서 Seq module를 사용하여, 난에서 다음을 사용하여 시도 적이 C#을 ...이 구문은 아마도 잘못된 것입니다).
Seq.findIndex(s => s.StartsWith("b"))(strings);
3
사용이 :
var list = new List<string> { "a1", "a2", "b0", "b2", "c1" };
int index = list.FindIndex(x => x.StartsWith("b"));
귀하의 목록이 거대하고 실적이 문제인 경우 귀하의 질문에 대한 귀하의 의견에 Joel Rondeau가 언급 한대로 중복 가능성을 고려하십시오.
+0
이것은 굉장합니다! 나는 3 년 동안'List
관련 문제
- 1. 부분 일치 키 일치 최적화
- 2. 정렬 된 여러 목록의 조합
- 3. 정렬 된 목록의 십진수 (소수)
- 4. 정규식 일치 부분 추출
- 5. 부분 정규 표현식 일치
- 6. Lucene 부분 일치 검색
- 7. Oracle Database의 부분 일치
- 8. 목록의 부분 - 파이썬
- 9. 목록의 정렬 된보기
- 10. 정규식 : 부분 일치 또는 전체 일치
- 11. 정렬 된 목록의 중간에서 결과를 선택 하시겠습니까?
- 12. 값으로 배열 키 정렬
- 13. 병렬화 된 레코드 결합 - 복수 키 일치
- 14. 연속적인 부분 문자열 일치 찾기
- 15. 정규식 부분 문자열 CSV 일치
- 16. 정렬 가능한 목록의 다른 테이블의 열 정렬
- 17. rhino mocks의 부분 인수 일치
- 18. couchdb 쿼리에서 "부분 일치"를 구현하는 방법
- 19. 정렬 된 키 접미사가있는 PHP 배열
- 20. 정렬 된 값을 키 값으로 추상화
- 21. 기본 키 정렬
- 22. 비 연속적인 글자가있는 인수 약어 (부분 일치 ++)?
- 23. 목록 정렬 및 패턴 일치
- 24. mysqli_query [부분 일치]는 어디에서 선택 하시겠습니까?
- 25. 부분 일치 (또는 완전 일치)를위한 배열 검색
- 26. 스칼라 목록의 n 번째 요소와 일치
- 27. 배열 값 일치 - 리턴 키
- 28. 장고 모델 외래 키 필드를 일치
- 29. 목록의 자연 순서에 따라 정렬 된 PQ를 만드는 방법은 무엇입니까?
- 30. 링크 된 목록의 병합 정렬 Java : Stackover Flow
"b"를 첫 번째 문자로 갖는 첫 번째 요소의 색인을 원한다는 의미입니까? (즉, 2) – Toby
가능한 [이] (http://stackoverflow.com/questions/457160/themost-efficient-algorithm-to-find-first-prefix-match-from-a-sorted-string- arra) –
고마워, 조엘! 정확히 내가 필요로하는 것! – UserControl