这个肯的用到递归的,你的数据表简化为 id name fid.如同你上图,电子产品和新闻的fid=0,电脑的fid为电子产品的标识ID,我曾经的一个做法是,先获取fid为0的所有数据, 然后循环每条数据,根据每条数据的fid来获取他的子类(这里就要用到递归了。),循环子类,设置一个记录深度的变量,并且记录当前深度的所有元素(也就是所有的id)、去重写入到Dictionary中,键值对为当前深度、以及当前的所有元素(可以是id组成的字符串等等,下次递归的时候要用到)。 OK ,循环子类打印出当前每条数据,根据每条数据的ID去循环Dictionary中的值,查看是否包含在此中。最后递归次方法。传入循环到的每条数据的ID 到次方法中。