2011-08-31 6 views
49

を最後の要素を選択します。私はこのコードを持っている).Split(後すぐに

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

を、私は保存せずに、すぐに、直接、分割後stringCuttedstring[]の最後の要素を保存したいのですが変数内の分割された配列とその要素へのアクセスarray[array.length]

は、C#で、このことは可能ですか?

+1

文字列 'Cutted' ?????? –

+0

切り取られた文字列: – markzzz

+1

いいえ、私はイタリア語です:) – markzzz

答えて

95

は、.NET 3.5以降を使用している場合、それは簡単ですオブジェクトにLINQを使用して:

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

注(述語なし)Last()ソースがIList<T>を実装する場合について最適化された(単一次元配列が行うように)ので、このされていることは最後の要素を見つけるために配列全体を反復しません。一方、その最適化が文書化されていないです...

+4

はい、それはLINQのためです。「using System.Linq;」を追加する必要があります。あなたのコードに。 – Rumplin

+1

これはうまくいきます。実際に 'Split("/")'は私にエラーを出します。 'Split( '/')'は動作します... – markzzz

+0

@markzzz:修正されました。私はあなたが作業用のコードを投稿していると仮定していました(あなたの質問は二重引用符を使用しています)。 –

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

しかし、あなたがパスからファイル名を取得しようとしている場合だけFYI、これは、ヒープがうまく機能:

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

使用LINQ

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

すばやく、直接最後の要素を返しソリューションをしたいので、店舗分割さアレーずに、私はこれがかもしれないと思います便利:このコードを使用するための

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

、私はUrlリンクから最後の要素をスキップします。

string url = Request.Url.ToString().Substring(0, Request.Url.ToString().LastIndexOf('/')); 
関連する問題