2010-10-05 130 views
1

尋找一個簡單的查詢來使用Linq按x個字符截斷文本。使用linq截斷文本

+5

請給出更多細節。你一直都不清楚你正在尋找什麼樣的截斷,或者它與LINQ有什麼關係。 – 2010-10-05 12:58:53

回答

2

你可以用一個非常簡單的SelectSubstring組合截斷字符串一定長度:

var words = new List<string>(); 

// fill the list of words 

var truncated = words.Select(w => w.Substring(0, 15)); 
+0

我決定讓它變得複雜,並將單詞轉換爲char數組,使用select many,然後使用聚合。你的是一條直線。我會接受! – FiveTools 2010-10-05 13:20:54

+0

對不起。轉換爲字符數組,然後我用take和select,然後聚合結果。 – FiveTools 2010-10-05 13:30:17

1
string raw = raw.ToCharArray().Take(maxLength).Select(x 
=> x.ToString()).Aggregate((current,next) 
=> current + next); 

這是在複雜...

+2

你寫了*而不是使用'string'的'Substring'實例方法?創意,當然,但...聖潔的流血roadkill,蝙蝠俠。 – 2010-10-05 14:03:09

+0

是的 - 我剛剛提到過... – FiveTools 2010-10-05 14:26:18

6

你的問題還不清楚。基於對Justin's answer您的評論聽起來更簡單的方式來實現你描述情況如下:

string input = "The quick brown fox jumped over the lazy dog"; 
string result = new String(input.Take(15).ToArray()); 
Console.WriteLine(result); 

注意,沒有必要調用ToCharArray()因爲字符串實現IEnumerable<char>。 VS2008中的智能感知不會顯示,但擴展方法仍然有效。同樣,您可以使用字符串構造函數並將其傳遞給一組字符,而不是使用Aggregate

+0

擴展方法也是一個想法!謝謝。 – FiveTools 2010-10-05 14:27:14