C# list<string> 中的项怎么比较是不是一致?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# list<string> 中的项怎么比较是不是一致?相关的知识,希望对你有一定的参考价值。

List<string> listApp = new List<string>();
foreach (GridViewRow gvr in this.gvAppNot.Rows)

CheckBox chkCurrent = gvr.FindControl("chkCurrent") as CheckBox;
if (chkCurrent.Checked == true)

listApp.Add(gvr.Cells[2].Text + ","); //存类型


怎么比较listApp中的所有项是否一致?
添加的项包括:a1、a2、a3 我判断里面存的各项是否一致,如果不一致我需要提示用户。有什么好的方法吗?

用Contains函数做比较:
listApp.Contains("")
参考技术A 什么叫是否一

请教C#中的List<T>,删除list中特定元素的方法

//Account是账号表类,Trade是交易表类,各表的属性已封装好了
Dictionary<string,Account> accounts=new Dictionary<string,Account>();
List<Trade> trades=new List<Trade>();

public string Take(string code, double money, string memo)

if (!accounts.ContainsKey(code))
return "该账号不存在!";

double balance = accounts[code].Balance - money;
if (balance < 0)
return "取款余额不足!";

accounts[code].Balance -= money;

Trade trade = new Trade();
trade.Code = code;
trade.Money = money;
trade.Date = DateTime.Now;
trade.Memo = memo;
trade.Thistype = TransType.Take;
trades.Add(trade);

return "取款成功!";


现在我想从这个List对象trades中删除多个trade元素,这些trade元素得Code字段全都是"0001",我该用什么方法删除掉?请各位高手指教

循环删,List都是可以用下标访问的,写个循环,找到相应的元素,然后RemoveAt()。循环也许要倒写。
for( int i = trades.Count - 1; i >= 0; --i )

  if( trades[i].Code == "0001" )
  
    trades.RemoveAt( i );
  
参考技术A 首先code是标识不应该相同.你的程序中怎么会有这么多想通的0001?
其次.你得到许多相同的,那就应该遍历删除.不然会造成冗余.
应该在trade.Code = code;的时候去判断trades里面有没有一样的数据.不应该直接add.

以上是关于C# list<string> 中的项怎么比较是不是一致?的主要内容,如果未能解决你的问题,请参考以下文章

C# 移除数组中重复项

如何将 C# 中的 Dictionary <string,List<string>> 转换为带有键作为标题的 csv?

NHibernate .SelectList() 与 C# 中的 List<string>

C#中List<List<string>>要怎么处理?

关于 C# 中list<string> 的用法

用 C# 计算 List<string> 中的范围之间有多少个数字