用于创建嵌套列表的逻辑
本文关键字:列表 创建 嵌套 用于 | 更新日期: 2023-09-27 18:01:43
我正在解释一个嵌套列表的文本文件,格式如下
- todo
- clean kitchen
- do dishes
- sweep floor
- cook dinner
- defrost fish
- shopping
- milk
- eggs
我想把这些项放到
ul
标签。必须有一个聪明的,整洁的逻辑来做这件事,我错过了?
应该很容易通过使用string.IndexOf
来确定级别:
string line = file.ReadLine();
int level = line.IndexOf('-');
level = (level - 1)/2;
处理关卡的逻辑更有趣。下面的代码应该可以很好地工作。
int lastLevel = -1;
string line;
while ((line = file.ReadLine()) != null)
{
int level = GetLevel(line); // from code above
int diff = level - lastLevel;
if (diff > 1)
{
// skipping multiple levels forward is probably an error.
throw new ApplicationException();
}
if (diff == 1)
{
// next level. Add a <ul>
WriteUl();
}
else if (diff == 0)
{
// same level. Add an <li>
WriteLi(line);
}
else
{
// need to add </ul>, possibly multiple times
do
{
WriteUlEnd();
--lastLevel;
} while (lastLevel > level);
}
lastLevel = level;
}
如果你所拥有的只是你所展示的数据,那真的是唯一的方法。你必须计算空格