###前提・実現したいこと
Object[]型への変換エラーについてです。
List<T>型のコレクションをforeachで1行づつ取り出して、Excelに出力しようと思っています。
EPPlus.dllというライブラリを利用して出力する既存クラスがあるため、
そのクラスの型が、Object[]型になっています。
集めたデータは、List<T>型なので、Object[]型と一致しないためエラーが発生しています。
このデータをExcelに出力しようと考えていますが、Object[]型へのキャスト?
あるいは代入の仕方を教えていただければと思います。
実際には簡単な方法があるのかもしれませんが、残念ながら思いつきませんでした。
###発生している問題・エラーメッセージ
以下は、機能を縮小させて発生したエラーメッセージです。
エラー 2 引数 1: 'MEMBER' から 'System.Collections.Generic.List<MEMBER>' に変換できません エラー 1 'AAA.PrintData(System.Collections.Generic.List<MEMBER>)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
###該当のソースコード
機能を縮小させたソースコードです
C#
1using System; 2using System.Collections.Generic; 3using System.Linq; 4 5 6public partial class MEMBER 7{ 8 public string no { get; set; } 9 public string id { get; set; } 10 public string name_1st { get; set; } 11 public string name_2nd { get; set; } 12 public string tel_no { get; set; } 13} 14 15public class Key 16{ 17 public Key(string id) 18 { 19 this.target = id; 20 } 21 public string target {get; set; } 22} 23 24class AAA 25{ 26 public List<Key> key_id = new List<Key>(); 27 28 private static List<MEMBER> mlist(Key key_id) 29 { 30 List<MEMBER> Member = new List<MEMBER> { 31 new MEMBER { no = "0001", id = "1" ,name_1st = "あいう", name_2nd = "えお", tel_no = "0123450000"}, 32 new MEMBER { no = "0002", id = "1" ,name_1st = "かきく", name_2nd = "けこ", tel_no = "0123451111"}, 33 new MEMBER { no = "0003", id = "1" ,name_1st = "たちつ", name_2nd = "てと", tel_no = "0123452222"}, 34 new MEMBER { no = "0001", id = "2" ,name_1st = "あいう", name_2nd = "えお", tel_no = "09012340000"}, 35 new MEMBER { no = "0002", id = "2" ,name_1st = "かきく", name_2nd = "けこ", tel_no = "09012341111"}, 36 new MEMBER { no = "0003", id = "2" ,name_1st = "たちつ", name_2nd = "てと", tel_no = "09012342222"}, 37 }; 38 return Member; 39 } 40 41 public void PrintOut() 42 { 43 int row = 0; 44 int column = 0; 45 foreach (var key in key_id) 46 { 47 foreach (var Collection in mlist(key)) 48 { 49 OutPut(PrintData(Collection)); 50 row++; 51 } 52 } 53 } 54 55 private Object[] OutPut(Object[] print) 56 { 57 List<Object> result = new List<object>(); 58 result.Add(print[0]); 59 int j = 10; 60 for (int i = 1; i <= j; i++) 61 { 62 result.Add(print[i]); 63 } 64 return result.ToArray(); 65 } 66 private Object[] PrintData(List<MEMBER> member) 67 { 68 List<Object> result = new List<object>(); 69 foreach (var opdata in member) 70 { 71 result.Add(opdata.no); 72 result.Add(opdata.no); 73 result.Add(opdata.name_1st); 74 result.Add(opdata.name_2nd); 75 result.Add(opdata.tel_no); 76 } 77 return result.ToArray(); 78 } 79}
###試したこと
foreachや型変換にこだわりはなく、List<MEMBER>のようなデータを1行ずつ取り出し、出力する方法を探しています。
###補足情報(言語/FW/ツール等のバージョンなど)
C# MVC .NET Framework EPPlus
必要な情報が足りないようでしたら教えてください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/31 07:37 編集
2016/05/31 07:51
2016/05/31 09:49