我有一个对象列表,我可以用该句子添加记录:
jQuery(document).ready(function(){
$("#PROV_ID").change(function() {
var PROVID = {"PROVID" : $('#PROV_ID').val()};
console.log(PROVID);
$.ajax({
type: "POST",
data: PROVID,
url: "<?php base_url(); ?>Employees/dependent_dropdown/",
success: function(data){
var select = $('#CT_ID');
select.html('');
$.each(data, function(i, option){
select.append("<option value='"+option.CT_ID+"'>"+option.CITY+"</option>");
});
}
});
});
$("#PROV_ID2").change(function() {
var PROVID2 = {"PROVID2" : $('#PROV_ID2').val()};
console.log(PROVID2);
$.ajax({
type: "POST",
data: PROVID2,
url: "<?php base_url(); ?>Employees/dependent_dropdown2/",
success: function(data){
var select = $('#CT_ID2');
select.html('');
$.each(data, function(i2, option2){
select.append("<option value='"+option2.CT_ID+"'>"+option2.CITY+"</option>");
});
}
});
});
});
但是当我尝试删除一个项目时,它表现得像lambda表达式不支持:
List<DragerClass.Alarm> alarms = new List<DragerClass.Alarm>();
public void createAlarm(int i, int[] alarms)
{
alarms.Add(new DragerClass.Alarm(i, DateTime.Now, DragerClass.Dedector.Dedector_Name[i] + " UNDER RANGE"))`;
}
当我站在代码上时,我看到了这条消息
无法将lambda表达式转换为type &#39; Drager_GasDedection.DragerClass.Alarm&#39;因为它不是代表 型
我使用的是Visual Studio 2010,我还在引用中添加了public void removeAlarm(int i)
{
alarms.Remove(x => x.Dedector_No == i);
}
。但仍然相同。谢谢你的帮助。
答案 0 :(得分:2)
看看methods of List<T>
。方法Remove(T)
只需要一个元素。如果在列表中找到它,则将其删除,否则不执行任何操作。 Remove
并未寻找会检查的Predicate<T>
。
RemoveAll(Predicate<T>)
但是期望一个谓词。所以你需要打电话:
alarms.RemoveAll(x => x.Dedector_No == i);
您还必须在代码中将=
更改为==
,否则您将执行分配而不是相等检查。此外请注意,该方法将使用给定的检测器编号删除所有警报,而不仅仅是第一个。