页面是四个多选按钮,传到后台的是布尔值,后台根据四个布尔值进行筛选LIst对象,的然后将其筛选的数据填充到另一个list对象返回给页面,我自己写的太复杂了,请大家帮我看看有什么别的方法没有,谢谢! public List<SysDisk> DeserializeList(bool Ready, bool Failed, bool Online, bool Other)
{
string path = OutFile + @"\Disk.bin";
IFormatter formatter = new BinaryFormatter();
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
fs.Seek(0, 0);
infoList = formatter.Deserialize(fs) as List<SysDisk>;//拿到数据的list List<SysDisk> DiskList = new List<SysDisk>();//填充筛选数据的list
foreach (SysDisk item in infoList)
{
SysDisk disk = new SysDisk();
if (Ready == true && Failed == true && Online == true && Other == true)
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
else if (Ready == true && Failed == true)
{
if (item.diskstates == "Ready" || item.diskstates == "Failed")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Ready == true && Online == true)
{
if (item.diskstates == "Ready" || item.diskstates == "Online")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Ready == true && Other == true)
{
if (item.diskstates == "Ready" || item.diskstates == "Other")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Failed == true && Ready == true)
{
if (item.diskstates == "Failed" || item.diskstates == "Ready")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Failed == true && Online == true)
{
if (item.diskstates == "Failed" || item.diskstates == "Online")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Failed == true || Other == true)
{
if (item.diskstates == "Failed" && item.diskstates == "Online")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Online == true || Other == true)
{
if (item.diskstates == "Online" && item.diskstates == "Other")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Online == true || Failed == true)
{
if (item.diskstates == "Online" && item.diskstates == "Failed")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Online == true || Ready == true)
{
if (item.diskstates == "Online" && item.diskstates == "Ready")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Ready == true)
{
if (item.diskstates == "Ready")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Failed == true)
{
if (item.diskstates == "Failed")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Online == true)
{
if (item.diskstates == "Online")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
}
return DiskList;
}
C#asp.net对象String
{
string path = OutFile + @"\Disk.bin";
IFormatter formatter = new BinaryFormatter();
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
fs.Seek(0, 0);
infoList = formatter.Deserialize(fs) as List<SysDisk>;//拿到数据的list List<SysDisk> DiskList = new List<SysDisk>();//填充筛选数据的list
foreach (SysDisk item in infoList)
{
SysDisk disk = new SysDisk();
if (Ready == true && Failed == true && Online == true && Other == true)
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
else if (Ready == true && Failed == true)
{
if (item.diskstates == "Ready" || item.diskstates == "Failed")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Ready == true && Online == true)
{
if (item.diskstates == "Ready" || item.diskstates == "Online")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Ready == true && Other == true)
{
if (item.diskstates == "Ready" || item.diskstates == "Other")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Failed == true && Ready == true)
{
if (item.diskstates == "Failed" || item.diskstates == "Ready")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Failed == true && Online == true)
{
if (item.diskstates == "Failed" || item.diskstates == "Online")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Failed == true || Other == true)
{
if (item.diskstates == "Failed" && item.diskstates == "Online")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Online == true || Other == true)
{
if (item.diskstates == "Online" && item.diskstates == "Other")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Online == true || Failed == true)
{
if (item.diskstates == "Online" && item.diskstates == "Failed")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Online == true || Ready == true)
{
if (item.diskstates == "Online" && item.diskstates == "Ready")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Ready == true)
{
if (item.diskstates == "Ready")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Failed == true)
{
if (item.diskstates == "Failed")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
else if (Online == true)
{
if (item.diskstates == "Online")
{
disk.IP = item.IP;
disk.diskno = item.diskno;
disk.diskname = item.diskname;
disk.diskstates = item.diskstates;
disk.diskSerial = item.diskSerial;
disk.SpareState = item.SpareState;
disk.RollUpStatus = item.RollUpStatus;
disk.ComponentStatus = item.ComponentStatus;
disk.UpdateTime = item.UpdateTime;
DiskList.Add(disk);
}
}
}
return DiskList;
}
C#asp.net对象String
建议根据item.diskstates,结合Ready,Failed,Online,Other参数的取值判断是否需要加入到新列表
foreach
{
switch()
{
case:
if() //不符合要求
continue;
...
}
//不需要 disk.IP = item.IP等操作,结构一样的
DiskList.Add(item)
}
建议使用穷举switch结构,赋值封装成一个方法。
我帮你改了下,有些赛选条件不可能进去的我把它去掉了。
public List<SysDisk> DeserializeList(bool Ready, bool Failed, bool Online, bool Other)
{
string path = OutFile + @"\Disk.bin";
IFormatter formatter = new BinaryFormatter();
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
fs.Seek(0, 0);
infoList = formatter.Deserialize(fs) as List<SysDisk>;//拿到数据的list List<SysDisk> DiskList = new List<SysDisk>();//填充筛选数据的list foreach (SysDisk item in infoList)
{
switch (item.diskstates)
{
case "Ready":
if (Ready && Failed && Online && Other)
{
DiskList.Add(item);
}
else if (Ready || (Ready && (Failed || Online || Other)))
{
DiskList.Add(item);
}
else
{ }
break;
case "Failed":
if (Ready && Failed && Online && Other)
{
DiskList.Add(item);
}
else if (Failed || ((Ready || Online) && Failed))
{
DiskList.Add(item);
}
else
{ }
break;
case "Online":
if (Ready && Failed && Online && Other)
{
DiskList.Add(item);
}
else if (Online || ((Ready || Failed) && Online))
{
DiskList.Add(item);
}
else
{ }
break;
case "Other":
if (Ready && Failed && Online && Other)
{
DiskList.Add(item);
}
else if (Ready && Other)
{
DiskList.Add(item);
}
else
{ } break;
default:
break;
}
}
return DiskList;
}