C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: 文字列の対象文字の数について


(過去ログ 130 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■76883 / inTopicNo.1)  文字列の対象文字の数について
  
□投稿者/ テンテン (56回)-(2015/08/26(Wed) 10:16:07)

分類:[.NET 全般] 

いつもお世話になっております。

下記の文字列から0が何個あるか数えたいと思っております。
Dim strNumber as String = "010203"

お手数お掛けしますがご教授下さい。
引用返信 編集キー/
■76884 / inTopicNo.2)  Re[1]: 文字列の対象文字の数について
□投稿者/ King (3回)-(2015/08/26(Wed) 10:32:24)
ぱっと思いつくのは
strNumber.Length - strNumber.Replace("0", Nothing).Length
とか
strNumber.Split(New Char() {"0"C}, StringSplitOptions.None).Length - 1
とかでしょうか。
引用返信 編集キー/
■76885 / inTopicNo.3)  Re[1]: 文字列の対象文字の数について
□投稿者/ 魔界の仮面弁士 (464回)-(2015/08/26(Wed) 10:34:37)
No76883 (テンテン さん) に返信
> 下記の文字列から0が何個あるか数えたいと思っております。
> Dim strNumber as String = "010203"

Dim count As Integer = strNumber.Count(Function(c) c = "0"c)
引用返信 編集キー/
■76886 / inTopicNo.4)  Re[2]: 文字列の対象文字の数について
□投稿者/ テンテン (57回)-(2015/08/26(Wed) 10:40:18)
No76884 (King さん) に返信
> ぱっと思いつくのは
> strNumber.Length - strNumber.Replace("0", Nothing).Length
> とか
> strNumber.Split(New Char() {"0"C}, StringSplitOptions.None).Length - 1
> とかでしょうか。
King さんかいとうありがとうございます。
無事に数を取得することが出来ました。
引用返信 編集キー/
■76887 / inTopicNo.5)  Re[2]: 文字列の対象文字の数について
□投稿者/ テンテン (58回)-(2015/08/26(Wed) 10:42:43)
No76885 (魔界の仮面弁士 さん) に返信
> Dim count As Integer = strNumber.Count(Function(c) c = "0"c)
→魔界の仮面弁士 さん回答ありがとうございます。
教えて頂きました手法を使用しました処、'Count'は'String'のメンバーではありませんとのエラーが出力されてしまいました。
こちらは何が原因になるのでしょうか。
引用返信 編集キー/
■76888 / inTopicNo.6)  Re[3]: 文字列の対象文字の数について
□投稿者/ 魔界の仮面弁士 (465回)-(2015/08/26(Wed) 10:53:58)
2015/08/26(Wed) 11:26:19 編集(投稿者)

No76887 (テンテン さん) に返信
>>Dim count As Integer = strNumber.Count(Function(c) c = "0"c)
> 'Count'は'String'のメンバーではありませんとのエラーが出力されてしまいました。

Count 拡張メソッドを使うためには、VB2008 以降が必要です。

とはいえ VB2005 以下なら、Count よりも先に
ラムダ式の「Function」がエラーになるはず…。


ということは、VB2008 以降のバージョンを使いつつ、ターゲットフレームワークに
.NET Framework 2.0 または 3.0 が選択されている状態なのではないでしょうか。


あるいは、.NET Framework 3.5 以降向けに開発されてはいるものの、
参照設定に System.Core.dll が含まれていないケースが思い当たります。
(.NET 3.5 以降のプロジェクトでは、既定で参照されているはず)

過去の投稿 ( No74880 , No76040 , No74505 ) を確認してみたところ、
VB2013 (.NET 4) の ASP.NET WebForm をお使いのようですので、多分、
古いWebプロジェクトを 2013 向けにコンバートしたことにより、
System.Core が参照から抜け落ちている状態なのではないでしょうか?


なお、System.Core が無かったとしても、
 Dim count As Integer = Array.FindAll(Of Char)(strNumber, AddressOf "0"c.Equals).Length
と書くことはできます。これなら VB2005 においても動作しますよ。
(2003 以下だと駄目ですけども)
引用返信 編集キー/
■76889 / inTopicNo.7)  Re[4]: 文字列の対象文字の数について
□投稿者/ テンテン (59回)-(2015/08/26(Wed) 11:43:34)
No76888 (魔界の仮面弁士 さん) に返信
> 2015/08/26(Wed) 11:26:19 編集(投稿者)
>
> ■No76887 (テンテン さん) に返信
> >>Dim count As Integer = strNumber.Count(Function(c) c = "0"c)
>>'Count'は'String'のメンバーではありませんとのエラーが出力されてしまいました。
>
> Count 拡張メソッドを使うためには、VB2008 以降が必要です。
>
> とはいえ VB2005 以下なら、Count よりも先に
> ラムダ式の「Function」がエラーになるはず…。
>
>
> ということは、VB2008 以降のバージョンを使いつつ、ターゲットフレームワークに
> .NET Framework 2.0 または 3.0 が選択されている状態なのではないでしょうか。
>
>
> あるいは、.NET Framework 3.5 以降向けに開発されてはいるものの、
> 参照設定に System.Core.dll が含まれていないケースが思い当たります。
> (.NET 3.5 以降のプロジェクトでは、既定で参照されているはず)
>
> 過去の投稿 ( No74880 , No76040 , No74505 ) を確認してみたところ、
> VB2013 (.NET 4) の ASP.NET WebForm をお使いのようですので、多分、
> 古いWebプロジェクトを 2013 向けにコンバートしたことにより、
> System.Core が参照から抜け落ちている状態なのではないでしょうか?
>
>
> なお、System.Core が無かったとしても、
>  Dim count As Integer = Array.FindAll(Of Char)(strNumber, AddressOf "0"c.Equals).Length
> と書くことはできます。これなら VB2005 においても動作しますよ。
> (2003 以下だと駄目ですけども)
→分かりやすい説明ありがとうございます。
 開発環境を事細かに記載しなくて申し訳ございませんでした。
 ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -