コンマ区切りの文字列値を文字列の汎用リストに変換したいと考えています。何らかの方法を使用せずにそれを行いたいと思います。
以下のコードを使用していますが、これにより暗黙の変換エラーが発生します。
List<string> lstTags = (string.IsNullOrEmpty(f.TagName) ? new List<string>():
(new List<string>(f.TagName.Split(',')));
「using System.Linq;」を追加すると、.ToList() を使用して、.Split() が返す文字列配列をリストに変換できます。
List<string> lstTags = (String.IsNullOrEmpty(f.TagName) ? new List<string>() :
f.TagName.Split(',').ToList());
または、f.TagName が null のときに .Split() および .ToList() を呼び出すことのわずかな非効率性を気にしない場合は、null 合体演算子 (??) を使用できます。
List<string> lstTags = (f.TagName ?? "").Split(',').ToList();
まず、Split() から返された string[] を受け取るコンストラクターで List オブジェクトをインスタンス化しようとしているようです。List<> コンストラクターはサイズを決定するために IEnumerables または int を使用しますが、string[] を使用する C# List<> コンストラクターはありません。
次に、何らかの理由で ToString() メソッドが List<> 参照にアタッチされています。これにより、メモリの場所の16進数の文字列が返されると思います。
この複雑な文字列の代わりに、次のようにしてみてください。
List<string> lstTags = new List<string>():
if(!(string.IsNullOrEmpty(f.TagName))
lstTags.AddRange(f.TagName.Split(',');
AddRange() は、ステートメントから返されたオブジェクトの配列を追加します。