- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个每小时运行一次的 PowerShell 脚本,它基本上通过滴灌过程更新产品信息。该脚本在开发环境中失败,但在生产和质量中继续工作。故障点在使用 LINQ 的线路上。这是脚本:
$productInfos = [pscustomobject]@{
product_name = 'Television'
price = 1000
product_id = 101
} | ForEach-Object{$_}
$productIdDelegate = [Func[object,int]] {$args[0].product_id}
$productInfos = [Linq.Enumerable]::ToLookup($productInfos, $productIdDelegate)
从技术上讲,它在最后一行失败了。但是包括倒数第二行是因为在研究这个问题时,我发现很多其他帖子指出如果 ToLookup linq 函数中的两个参数不是同一类型,它可能会导致这个问题。倒数第二行是许多用户的“假定”修复,但遗憾的是不是我自己。我仍然收到
Cannot find an overload for "ToLookup" and the argument count: "2"
我检查了所有 3 个环境的依赖关系,一切都是一样的。而且,powershell 版本也都相同。
最佳答案
即使错误没有提供太多细节,从您当前可重现的代码我们可以看出问题是因为 $productInfos
是类型为 PSObject
的单个对象并且此类未实现 IEnumerable
Interface :
$productInfos = [pscustomobject]@{
product_name = 'Television'
price = 1000
product_id = 101
}
$productInfos -is [System.Collections.IEnumerable] # => False
要确保 $productInfos
始终是一个可编号,您可以使用 Array subexpression operator @( )
:
@($productInfos) -is [System.Collections.IEnumerable] # => True
转换 [object[]]
或 [array]
也应该是一个选项:
[object[]] $productInfos -is [System.Collections.IEnumerable] # => True
[array] $productInfos -is [System.Collections.IEnumerable] # => True
但是上述方法仅在 $productInfos
至少有 1 个元素 时有效,而不是 @(..)
始终确保数组:
The result is always an array of 0 or more objects.
总结:
$productInfos = [Linq.Enumerable]::ToLookup([object[]] $productInfos, $productIdDelegate)
$productInfos = [Linq.Enumerable]::ToLookup(@($productInfos), $productIdDelegate)
$productInfos = [Linq.Enumerable]::ToLookup([array] $productInfos, $productIdDelegate)
是否所有有效选项都考虑了上面的解释,如果我们不确定变量是否将始终被填充,最安全的选择将始终是 @(...)
:
# Returns Null instead of an error:
[Linq.Enumerable]::ToLookup(@(), $productIdDelegate)
关于powershell - 找不到 "ToLookup"和参数计数 : "2" LINQ 的重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72930890/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!