2016-12-22 3 views
0

私はList<string>にURLが入力されています。私がしたいのは、Listの内容をユーザーがクリックできるハイパーリンクに変換することです。私はこれを行う方法の例をたくさん見てきましたが、それらのほとんどは電子メールに挿入するか、という単語をハイパーリンクに切り替えました。私はちょうど私が何を見ているのか分からないので、ちょっと混乱します。ここに私が持っているものがあります:リストを変更する<string>コンテンツをハイパーリンクに変換する

List<string> lstUrls = new List<string>(); 
//PROGRAM GETS URLS FROM ELEMENTS IN HERE.... 
foreach (string s in lstUrls) 
{ 
    s = "<a href=\"%s\"></a>"; //THIS DOESN'T WORK... 
} 

私は文字列の内容を変更したくない - ちょうどハイパーリンクとして表示することができます。たとえば、1つの文字列値はhttps://www.tyco-fire.com/TD_TFP/TFP/TFP172_02_2014.pdfになります。どのようにスタックオーバーフローがリンクとして表示されるのか、それは私が達成したいことです。

私は明らかに文法に悩まされています。どんな助けもありがとうございます。

+0

WPFリストボックス –

答えて

7

foreachを使用して、反復しながらList<T>の内容を変更することはできません。しかし、あなたはforを使用することができます読んで

for(int i = 0; i < lstUrls.Count; i++) 
{ 
    var s = lstUrls[i]; 
    lstUrls[i] = "<a href=\"" + s + "\">" + s + "</a>"; 
} 

少し簡単には、このでした:

lstUrls[i] = String.Format("<a href=\"{0}\">{0}</a>", s); 
+1

ありがとう!!私は助けに感謝します。 –

5

あなたはそれのためにLINQを使用することができます。

lstUrls = lstUrls.Select(s => $"<a href=\"{s}\"></a>").ToList(); 

かというと、それにURLを表示します:

lstUrls = lstUrls.Select(s => $"<a href=\"{s}\">{s}</a>").ToList(); 
+0

lstUrls = lstUrls.Select(s => $ "{s}")にする必要はありません.ToList(); –

+0

@FraukeNonnenmacher何が私は間違っていましたか? –

+1

@FraukeNonnenmacherより正確に '$" {s} ")' –

関連する問題