Lambda表达式不适用于过滤列表中的obj

时间:2019-06-13 22:10:05

标签: c# winforms lambda

用户选择月份,每天将动态绘制4个文本框+一个按钮(保存行);每个文本框都有文本框。Tag=引用的日期。

当用户单击保存行时,我将只选择相应行的文本框(预期有4个文本框)。

生成文本框的代码:

extension UIViewController {
    var sceneDelegate: UISceneDelegate? {
        return self.view.window?.windowScene?.delegate
    }
}

我尝试:

connect()

任何帮助都非常感谢^ _ ^

2 个答案:

答案 0 :(得分:1)

您正在直接比较两个object,默认情况下,这将通过引用比较来完成。

// this for example will never be true, even if today is 20190613
// because they are 2 different instances
(object)new DateTime(2019, 06, 13) == (object)DateTime.Today

您想比较这些日期的值:

t.Where(x => x.Tag is DateTime date && date == d)

答案 1 :(得分:0)

List<Control> RecordData = Controls.Cast<Control>().Where(x => x.Tag is DateTime date && date == d).ToList();

我已经从Xiaoy312的建议(感谢^^)开始创建了这段代码,并阅读了有关类似线程上的Cast命令的信息。