Nice programing

.Split () 후 빠르게 마지막 요소 선택

nicepro 2020. 11. 29. 12:14
반응형

.Split () 후 빠르게 마지막 요소 선택


이 코드가 있습니다.

stringCutted = myString.Split("/"). // ???

분할 된 배열을 변수에 저장하지 않고 해당 요소에 액세스하지 않고 분할 후의 stringCutted마지막 요소에 string[]직접 빠르게 저장하고 싶습니다 array[array.length].

C #에서 가능합니까?


.NET 3.5 이상을 사용하는 경우 LINQ to Objects를 사용하는 것은 쉽습니다.

stringCutted = myString.Split('/').Last();

주의 Last()(술어없이)는 소스 구현하는 경우에 대한 최적화 IList<T>(a 일차원 배열처럼)이 그렇게 하지 않을 것이다 대하여 반복 배열 전체 위에 마지막 요소를 찾기. 반면에 그 최적화는 문서화되지 않았습니다 ...


stringCutted=myString.Split("/").Last()

그러나 참고로 경로에서 파일 이름을 얻으려는 경우 힙이 더 잘 작동합니다.

var fileName=System.IO.Path.GetFileName("C:\\some\path\and\filename.txt"); 
// yields: filename.txt

분할 된 배열을 저장하지 않고 마지막 요소를 직접 빠르게 반환하는 솔루션을 원하기 때문에 이것이 유용 할 것이라고 생각합니다.

stringCutted = myString.Substring(myString.LastIndexOf("/")+1);

LINQ 사용

"t/e/s/t".Split("/").Last();

이 코드를 사용하기 위해 Url링크 에서 마지막 요소를 건너 뜁니다 .

string url = Request.Url.ToString().Substring(0, Request.Url.ToString().LastIndexOf('/'));

참고 URL : https://stackoverflow.com/questions/7256873/select-last-element-quickly-after-a-split

반응형