簡體   English   中英

C#從中包含多個元素的可枚舉對象數組中查找確切的字符串類型元素

[英]C# To find exact string type element from Enumerable Object Array having Multiple elements in

我在C#中有一個復雜的可枚舉對象數組,其中的元素可以是多種類型。 如果這些是特定類的類型,則可以應用OfType()。 但是有多個字符串類型元素,我不能依靠它們的順序。

例如,我可以依賴於ApplicationApplicationState對象元素,例如:

dto.ApplicationState = application?.Items?.OfType<ApplicationApplicationState>()?.FirstOrDefault().ApplicationState?.Items
                ?.FirstOrDefault()?.To<multilingualStringField>()?.value?
                .FirstOrDefault().Value.ToString();

我可以應用一些方法來獲得所需的值嗎?

但是,基本數組中有兩個元素,即Items和ItemsElementName,我認為主要可以派上用場,其中第四個Item元素類型名稱由ItemElementName提供。 不確定是否有幫助。

下面是VS 2019調試器中的Enumerable Object數組的概述。

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

您可能正在尋找Enumerable.Zip 它允許您組合ItemsItemsElementName

var valuesByName = Items
  .Zip(ItemElementName, (i, n) => new KeyValuePair<string,object>(n.ToString(), i)))
  .Where(kv => kv.Value is string)
  .ToDictionary(x => x.Key, x => (string)x.Value);

現在,您可以確定哪個值屬於哪個字段: valuesByName["BillRate"]

您可以輕松地將字符串鍵替換為更特定的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM