【问题标题】:Operator '==' cannot be applied to operands of type 'int' and 'string'运算符“==”不能应用于“int”和“string”类型的操作数
【发布时间】:2013-03-14 09:04:23
【问题描述】:

我在这里有点误解为什么我在这里有一个错误我需要解析它这段代码有什么问题?

UberTrackerEntities ctx = UberFactory.Context;
IEnumerable<HtUser> users = HtUser.GetAll();
string selectedBU = rcbBusinessUnits.SelectedValue;
string selectedDepartment = rcbDepartment.SelectedValue;

HtDepartment department = ctx.HtDepartments.SingleOrDefault(d => d.DepartmentId ==selectedDepartment);

if (department != null) 
{
    users = users.Where(u => u.HtDepartments.Contains(department));
}

感谢您的帮助和快速答复!

PS:我觉得我刚刚结束了它接缝只是一个愚蠢的小错误......

【问题讨论】:

  • 这里的错误很明显。 d.DepartmentIdselectedDepartment 之一是int,另一个是string,您无法将两者与== 进行比较。
  • 您希望 Microsoft 人员应包括哪个变量导致错误。 ?这是非常有用的。你可以通过查看它来获得有问题的代码。
  • 提供更多细节:你想做什么?你好吗?预期什么?与您的预期不同的输出是什么?没有这样的信息。没有人可以帮助你。
  • @lc。我怎样才能正确地做到这一点?

标签: c# .net linq


【解决方案1】:

在 LINQ 查询中进行比较之前,您需要将 selectedDepartment 转换为整数。

int selectedDepartment = Convert.ToInt32(rcbDepartment.SelectedValue);

在您的查询中:

ctx.HtDepartments.SingleOrDefault(d => d.DepartmentId == selectedDepartment);

d.DepartmentId 是 int 类型,而 selectedDepartment 是字符串,您可以使用 == 运算符比较两者。

【讨论】:

  • 输入字符串的格式不正确。你能编辑你的答案吗?
  • @MCraft,下一行断点,看看rcbDepartment.SelectedValue里面有什么,一定不是整数值
  • 获取组合框中当前选中项的值
  • @MCraft,选择的值是多少
  • 它也帮助了我,非常感谢
【解决方案2】:

您选择的部门是字符串类型,您的 id 是 int 类型。您应该将您的 selectedDepartment 转换为 int:

int selectedDepartment = Convert.ToInt32(rcbDepartment.SelectedValue);

【讨论】:

  • 那么您应该将 rcbDepartment.SelectedValue 的值设置为您部门的键。手动或数据绑定到正确的键。
【解决方案3】:

d.DepartmentIdintselectedDepartment 是字符串。

您需要使用Int32.ParseInt32.TryParseConvert.ToInt32 进行转换

编辑:

int selectedDepartmentId = Convert.ToInt32(selectedDepartment);

HtDepartment department = ctx.HtDepartments.SingleOrDefault(d => d.DepartmentId == selectedDepartmentId));

【讨论】:

  • 我这里还有一个问题 LINQ to Entities 不能识别方法 'Int32 Parse(System.String)' 方法,并且这个方法不能翻译成存储表达式。
  • @MCraft - 更新了我的答案。试试看。
  • @MCraft - selectedDepartment 不能是有效整数。
猜你喜欢
  • 2020-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-12
  • 1970-01-01
  • 2015-01-25
相关资源
最近更新 更多