2017-10-22 57 views
0

在下面的代碼中創建leaguelist後,如何訪問列表中的值以填充另一個列表?如何從包含數組的列表對象中讀取數據

我需要將列表的值傳遞給另一個列表並將其發送到視圖。

List<Notification> notificationlist = new List<Notification>(); 
notificationlist.Add(new Notification { date = leaguename = leaguevenue = teamwon = }) 

什麼,我試圖做的是讀取leaguelist的價值觀和我需要訪問notificationlist該列表中的數據來填充值日期,leaguename,leaguevenue等

List<string[]> leaguelist = new List<string[]>(); 
     while (count != 0) 
     { 
      Int16 id = Convert.ToInt16(sportds.Tables[0].Rows[count-1]["sports_details_id"].ToString()); 

      using (SqlDataAdapter leagueDetails = new SqlDataAdapter("select league_name, league_details_venue,league_details_date from leagues, league_details where sports_details_id1 in ('" + id+ "') or sports_details_id2 in ('" + id + "')", sqlConnection1)) 
      { 
       DataSet leagues = new DataSet(); 
       leagueDetails.Fill(leagues).ToString(); 

       lname = leagues.Tables[0].Rows[0]["league_name"].ToString(); 
       lvenue = leagues.Tables[0].Rows[0]["league_details_venue"].ToString(); 
       ldate = leagues.Tables[0].Rows[0]["league_details_date"].ToString(); 

       string[] fields = new string[3]; 
       fields[0] = lname; 
       fields[1] = lvenue; 
       fields[2] = ldate; 
       leaguelist.Add(fields);     
      } 
      count = count - 1} 

請幫我這個!

+0

與您的問題沒有直接關係,但您訪問sql結果的方式只會返回第一行。使用'Tables [0] .Rows [0]'將僅返回第一行。如果你想獲得所有的行,你需要循環拋出'Table [0] .Rows'集合並讀取每一行。 –

+0

@ JohnM.Wright感謝那個約翰,我有我需要的數據在第一行,所以沒有問題。我有我需要的所有數據存儲在彙編中。我只需要知道如何訪問這些數據並將其存儲在另一個可用的數據庫中。 – 2strange

回答

0

基於您的評論,你可以遍歷這個列表,並在foreach循環讀取的值,並將其添加到notificationList

List<Notification> notificationlist = new List<Notification>(); 

foreach (string[] fields in leagueList) 
{ 
    var lname = fields[0]; 
    var lvenue = fields[1]; 
    var ldate = fields[2]; 

    Console.WriteLine($"League {lname} at {lvenue} on {ldate}"); 
    notificationsList.Add(new Notification 
           { 
           date = ldate, 
           leaguename = lname, 
           leaguevenue = lvenue 
           }; 
} 

你也可以使用LINQ,像這樣:

notificationsList.AddRange(
      leagueList.Select(fields => new Notificationnew Notification 
           { 
           date = fields[2], 
           leaguename = fields[0], 
           leaguevenue = fields[1] 
           }); 
+0

M.Wright我需要將列表的值傳遞給另一個列表並將其發送到視圖。 List notificationlist = new List (); notificationlist.Add(new Notification {date = leaguename = leaguevenue = teamwon = }); – 2strange

+0

請更新您的問題以更好地解釋您要找的內容。包括您嘗試過的示例以及您在評論中添加的代碼段。 –

+0

M.wright好的,我想要做的是閱讀來自leaguelist的值,我需要訪問通知列表中的數據,我在評論中提到。日期,leaguename,聯賽的價值存儲在彙編。這就是我需要訪問它的原因。如果我錯了,請糾正我。 – 2strange

0

這可能有所幫助,您可以從列表中選擇一個元素並將其添加到通知列表中。你可以使用for循環遍歷你的列表並做這樣的事情。

var s = leaguelist[0]; 
     notificationList.Add(new Notification 
     { 
      date = s[0], 
      leagename = s[1], 
      leaguevenue = s[2] 
     }); 
相關問題