나는 단어의 모음을 가지고, 나는 5 개 문자substring with linq?
제한이 컬렉션에서 컬렉션을 만들 싶어입력 :
Car
Collection
Limited
stackoverflow
출력 :
car
colle
limit
stack
word.Substring (0, 5) throw 예외 (길이)
word. (10)도 좋지 않습니다.
좋은 아이디어가 있습니까 ??
나는 단어의 모음을 가지고, 나는 5 개 문자substring with linq?
제한이 컬렉션에서 컬렉션을 만들 싶어입력 :
Car
Collection
Limited
stackoverflow
출력 :
car
colle
limit
stack
word.Substring (0, 5) throw 예외 (길이)
word. (10)도 좋지 않습니다.
좋은 아이디어가 있습니까 ??
이 시나리오의 개체에 대한 LINQ? 다음과 같이 선택을 할 수 있습니다.
from w in words
select new
{
Word = (w.Length > 5) ? w.Substring(0, 5) : w
};
기본적으로? :는이 문제를 해결합니다.
이var x = new string[] {"car", "Collection", "Limited", "stackoverflow" };
var output = x.Select(word => String.Join("", word.Take(5).ToList()));
변수 "출력은"결과를 포함 : 당신이 할 수있는
'null' 요소에 대한 검사를 추가해야합니다. 즉, 'var subwords = words.Where (w => w! = null). 선택 (w => w.Length> 5? w.Substring (0, 5) : w);'. – jason
var words = new [] { "Car", "Collection", "Limited", "stackoverflow" };
IEnumerable<string> cropped = words.Select(word =>
word.Substring(0, Math.Min(5, word.Length)));
뭔가,
string partialText = text.Substring(0, Math.Min(text.Length, 5));
난 당신이 찾고 있던 해답의 종류는 다음과 같이 할 생각입니다 :
car
Colle
Limit
stack
nd 문자열 "car"가 예외를 throw하지 않습니다.
그러나 가입하고 확실히 존재하지만 (5),
subString = word.Substring(0,Math.Min(5,word.Length));
후자의 코드를 더-사람이 읽을 수있는 경량, 다른 답변에서 제안 된대로 사용하는 것이 일반적으로 훨씬 간단 작품 취하면서 문자열의 길이를 확인하지 않고 처음 5자를 가져 오기 위해 문자열에서 Linq를 사용하는 것에 약간의 차가운 요인.
자동차는 길이가 3 자이고 5 자의 SubString을 요구하기 때문에 예외가 발생합니다. –
예, 알고 있습니다. 상황이 훨씬 더 복잡합니다. 그리고 제가 여러분에게 설명한이 복잡한 상황에서 가장 큰 문제가 있습니다. :) – user278618
LINQ만큼 멋있고 (저는 정말로 멋지다고 생각합니다) 어떻게 이것을 더 좋게/더 읽기 좋게 사용하고 있습니까? "구식"foreach 루프보다? – JMarsch