怎么解决foreach嵌套循环重复读取的问题

问题描述

我用了两个foreach循环来读取数据库里的数据,我想得到的结果是:测试点1大门楼梯测试点2走廊代码如下:foreach(varstationinstation.Get_By_All()){treelist1.AppendNode(newobject[]{station.station_name},null);foreach(varcsinchannelsatation.Get_By_StationID((short)station.station_id)){treelist1.Nodes[0].Nodes.Add(newobject[]{cs.channel_name});}}出现的结果却是:测试点1大门楼梯走廊测试点2出现这个结果的原因是什么啊。求大神告知,怎么解决?还是没法这样用的?

解决方案

解决方案二:
树形结构一般都有id、text、parentid等属性,通过parentid跟id建立关联。常规的做法是通过递归构造树形结构。
解决方案三:
建议:1.排序station.Get_By_All()2.foreach,添加到keyvalue(string,List),当key!="测试1“,重开一个key.也许对应两层数据,效果不明显,但是层次到了3次,就很实用了。避免了多层foreach.
解决方案四:
正常情况你id对应不会有关题,是不是你显示出问题?异步?多线程处理?
解决方案五:
出现的结果贴出来看你这样贴,根本不科学啊大门变成第3层??而楼梯和走廊没有挂在第1层下,直接放到了第2层下??要么你放出数据结构来,否则很难猜啊

时间: 2024-09-29 18:57:57

怎么解决foreach嵌套循环重复读取的问题的相关文章

InputStream 的read(byte[] d)方法读取内容出现重复读取,这是为什么?

问题描述 InputStream的read(byte[]d)方法读取内容出现重复读取,这是为什么? 解决方案 解决方案二:有没有用到skip()方法?如果用到了,实际上是skip的问题解决方案三:你是怎么读的,请贴出代码!解决方案四:谢谢各位帮忙,已经解决了解决方案五:这是代码:StringBufferbuffer=newStringBuffer();byte[]b=newbyte[2048];InputStreamin=newInputStream(filename);while(in.rea

用Struts的Token机制解决表单重复提交

Struts的Token(令牌)机制能够很好的解决表单重复提交的问题,基本原理是:服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配.在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换.这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发生. 这时其实也就是两点,第一:你需要在请求中有这个令牌值,请求

php 解决表单重复提交实现方法引见

  php 解决表单重复提交实现方法介绍 重复提交是我们开发中会常碰到的一个问题,除了我们使用js来防止表单的重复提交,同时还可以使用php来防止重复提交哦. 例1 代码如下 复制代码 /* * php中如何防止表单的重复提交 */ session_start(); if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库 $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为

80块钱帮我解决!Applet java读取客户端串口数据

问题描述 80块钱帮我解决!Applet java读取客户端串口数据 大神!来帮我! ```package com.z.remotecheck.util; import java.applet.Applet; import java.awt.HeadlessException; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream;

Java使用ByteArrayOutputStream 和 ByteArrayInputStream 避免重复读取配置文件的方法_java

ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据.在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去.具体用法如下: ByteArrayOutputStream:    可以捕获内存缓冲区的数据,转换成字节数组. ByteA

如何解决android Toast重复显示_Android

Toast是一种简易的消息提示框,它无法获取焦点,按设置的时间来显示完以后会自动消失,一般用于帮助或提示. 先给大家分享下我的解决思路: 不用计算Toast的时间之类的,就是定义一个全局的成员变量Toast, 这个Toast不为null的时候才去make,否则直接setText.为了按返回键后立即使Toast不再显示,重写父类Activity的onBackPressed()方法里面去cancel你的Toast即可. 代码: private Toast mToast; public void sh

如何解决android Toast重复显示

Toast是一种简易的消息提示框,它无法获取焦点,按设置的时间来显示完以后会自动消失,一般用于帮助或提示. 先给大家分享下我的解决思路: 不用计算Toast的时间之类的,就是定义一个全局的成员变量Toast, 这个Toast不为null的时候才去make,否则直接setText.为了按返回键后立即使Toast不再显示,重写父类Activity的onBackPressed()方法里面去cancel你的Toast即可. 代码: private Toast mToast; public void sh

真正解决表单重复提交问题php代码

  以前用的js表单防止重复提交方法  代码如下   <script type="text/javascript"> var checkSubmitFlg = false; function checkSubmit() {  if (!checkSubmitFlg) { // 第一次提交   checkSubmitFlg = true;   return true;  } else { //重复提交   alert("Submit again!");  

解决Oracle删除重复数据只留一条的方法详解_oracle

查询及删除重复记录的SQL语句1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where  Id in (select Id from 表 group by Id having count(Id) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id)