2017-10-22 126 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] 
     }); 
相关问题