Sitecore:以下方法或属性之间的调用不明确:'Sitecore.Data.ID.operator !=(Sitecore.Data.ID, Sitecore.Data.ID)'

Kam*_*ran 4 sitecore sitecore7.2

对于以下代码:我收到主题中提到的错误。

var subsidiariesIdList = new List<ID>();

MultilistField multilistField = newsItem.Fields["Recipient Subsidiaries"];
foreach (var item in multilistField)
{
    var data = Sitecore.Data.ID.Parse(item.ToString());

    if (data != null) // I am getting error here 
        subsidiariesIdList.Add(data);
}
Run Code Online (Sandbox Code Playgroud)

这是完整的错误文本:

以下方法或属性之间的调用不明确:'Sitecore.Data.ID.operator !=(Sitecore.Data.ID, Sitecore.Data.ID)' 和 'Sitecore.Data.ID.operator !=(Sitecore.Data .ID,Sitecore.Data.ShortID)'

Mar*_*lak 5

只需将 null 转换为ID

if (data != (ID)null)
Run Code Online (Sandbox Code Playgroud)

您需要强制转换的原因是ID该类定义了 2 个运算符:

public static bool operator ==(ID id1, ID id2)
public static bool operator ==(ID id1, ShortID id2)
Run Code Online (Sandbox Code Playgroud)

有不同的实现,null 可以是两者IDShortID。您需要告诉编译器使用哪个。