这一小段代码看能不能帮我简化一下.

wen7799 2009-12-20 08:27:36
C#中对List<T>进行搜索,并可输入多个关键字按空格分开的方法


public List<RoomEntity> SearchDisply(string searchName) //传过来的搜索词,得到结果List<RoomEntity>
{
string[] ArraySearch = searchName.Split(' ');
List<RoomEntity> sList = new List<RoomEntity>();
sList.Clear();
foreach (RoomEntity var in GetRoomList())
{
for (int i = 0; i < ArraySearch.Length; i++)
{
if (ArraySearch[i] != "")
{
if ((var.Number.IndexOf(ArraySearch[i]) != -1) && Validate(var.RoomId,sList))
{
sList.Add(var);
}
}
}
}

return sList;
}
private bool Validate(int id, List<RoomEntity> lt)
{
bool result = true;
foreach (RoomEntity var in lt)
{
if (id == var.RoomId)
{
result = false;
}
}
return result;
}
...全文
83 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wen7799 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sp1234 的回复:]
我没有看你的代码,我只是对你的题目问一下:你简化的目的是什么呢?

如果这段运行很好,大多数时候不必动它。

.net framework中有许多一看就是大学生写的代码,我相信微软有很好的 pm,所以那些低级代码很好地运行时,许多时候就无需重构它。
[/Quote]

大哥,我现在也只是在学习阶段,之所以请大家帮忙简化,只是想得到一个上佳的解决方案啦...
tianliang1 2009-12-20
  • 打赏
  • 举报
回复
把什么都弄在一行来写,可读性差了,个人意见。。。
tianliang1 2009-12-20
  • 打赏
  • 举报
回复
楼上是高人。。。
一般没有涉及大数据的话,没有必要考虑太多,做出来就是硬道理。。。
wuyq11 2009-12-20
  • 打赏
  • 举报
回复
if ((var.Number.Contains(ArraySearch[i])) && Validate(var.RoomId,sList))
{
sList.Add(var);
}
  • 打赏
  • 举报
回复
我没有看你的代码,我只是对你的题目问一下:你简化的目的是什么呢?

如果这段运行很好,大多数时候不必动它。

.net framework中有许多一看就是大学生写的代码,我相信微软有很好的 pm,所以那些低级代码很好地运行时,许多时候就无需重构它。
mngzilin 2009-12-20
  • 打赏
  • 举报
回复
关键这句:

string[] ArraySearch = searchName.Split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries);
mngzilin 2009-12-20
  • 打赏
  • 举报
回复
public List <RoomEntity> SearchDisply(string searchName) //传过来的搜索词,得到结果List <RoomEntity>
        {
            string[] ArraySearch = searchName.Split(new char[] {' '},StringSplitOptions.RemoveEmptyEntries);
            List <RoomEntity> sList = new List <RoomEntity>();
            sList.Clear();//这句楼主可以去掉
            foreach (RoomEntity var in GetRoomList())
            {
                for (int i = 0; i < ArraySearch.Length; i++)
                {//减少一次if判断
                    if ((var.Number.IndexOf(ArraySearch[i]) != -1) && Validate(var.RoomId,sList))
                    {
                        sList.Add(var);
                    }
                }
            }

            return sList;
        }
        private bool Validate(int id, List <RoomEntity> lt)
        {
            bool result = true;
            foreach (RoomEntity var in lt)
            {
                if (id == var.RoomId)
                {
                    result = false;
                }
            }
            return result;
        }

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧