ストリームの拡張メソッドbool StartsWith(string message)
を書きたいと思います。最も効率的な方法は何ですか?StartsWithストリームの拡張メソッド
1
A
答えて
2
このような何かでスタート...
public static bool StartsWith(Stream stream this, string value)
{
using(reader = new StreamReader(stream))
{
string str = reader.ReadToEnd();
return str.StartsWith(value);
}
}
その後、私はStreamReader
はあなたが小さいにストリームを読み取ることができるようになります多様なReadメソッドを持って、あなたのための練習としてこれを残しておきます...最適化より効率的な結果を得るための「チャンク」。もちろん
+2
'StreamReaderを使用しています 'は、読者が処分されたときにストリームを閉じてしまい、予期しない可能性が非常に高いため、この場合は良い考えではありません。 – ChrisWue
1
static bool StartsWith(this Stream stream, string value, Encoding encoding, out string actualValue)
{
if (stream == null) { throw new ArgumentNullException("stream"); }
if (value == null) { throw new ArgumentNullException("value"); }
if (encoding == null) { throw new ArgumentNullException("encoding"); }
stream.Seek(0L, SeekOrigin.Begin);
int count = encoding.GetByteCount(value);
byte[] buffer = new byte[count];
int read = stream.Read(buffer, 0, count);
actualValue = encoding.GetString(buffer, 0, read);
return value == actualValue;
}
Stream
自体は、それがデータを文字列表現に復号可能であるということを意味するものではありません。ストリームが確実である場合は、上記の拡張子を使用できます。
関連する問題
- 1. LINQの拡張メソッド - GetYearWeekFormat拡張
- 2. MVC拡張メソッド
- 3. 拡張メソッドは
- 4. 拡張メソッド
- 5. NativeScript拡張メソッド
- 6. 拡張メソッドは
- 7. 拡張メソッド - デコレータパターン
- 8. ジェネリック拡張メソッド
- 9. 拡張メソッド
- 10. IsOrderedBy拡張メソッド
- 11. C# - 拡張メソッド
- 12. ユニットテストの拡張メソッド
- 13. LINQの拡張メソッド
- 14. Rubyメソッドの拡張
- 15. スタティックオブジェクトの拡張メソッド
- 16. LINQの拡張メソッド
- 17. Dの拡張メソッド?
- 18. 拡張メソッドのパートタイムバグ
- 19. 拡張メソッドのスローエラー
- 20. 拡張メソッドとメソッド先日
- 21. 静的拡張メソッド
- 22. 仮想拡張メソッド?
- 23. モックIDataReader拡張メソッド
- 24. Swift3ランダム拡張メソッド
- 25. メイク拡張メソッド/プロパティ
- 26. NhQueryable LINQ拡張メソッド?
- 27. Nodeのストリームを拡張するには
- 28. HtmlHelper拡張メソッドのHTMLエンコーディング
- 29. DLLへの拡張メソッド
- 30. のIQueryable拡張メソッドは
まず、ストリームの拡張機能にミラーリング機能をミラーリングさせたいということですか?http://msdn.microsoft.com/en-us/library/baketfxw.aspx – Seph
@Seph; Streamの.net拡張メソッドを記述したい。あなたが与えたリンクは文字列です。 – Faisal