0

Sharepoint に保存したジャンルのリストを正常に取得できました。TaxonomyCollectionそれは私が信じている非公式です。クライアント オブジェクトがそれを送り返す方法は、奇妙で、別の形式に変換するのが困難です。多分私は何か間違ったことをしていますか?

返される JSON は次のとおりです (Genres ノードの下の項目を参照してください)。Labelたとえば、値を取得したい。かなりまっすぐに見えます。

ここに画像の説明を入力

これが実際にクライアント オブジェクト モデルに戻ってきます。

ここに画像の説明を入力

これはクレイジーです。1 つのジャンルのラベルを取得するためだけに書いたコードを次に示します。

var items = clientContext.Web.Lists.GetByTitle("Contacts").GetItems(itemsQuery);
//Execution code removed for brevity
Dictionary<string,object> g = ((Dictionary<string,object>)items.ToList()
                               .First()["Genres"]);
var g2 = g.ToList()[1];
var g3 = (object[])g2.Value;
var g4 = (object[])((Dictionary<string, object>) g3[0]).Values.ToArray();
var g5 = g4[1].ToString();

ご覧のとおり、それは見苦しく、最終的にすべてのラベルを取得するための linq ステートメントを作成することは、同様に見苦しく、書くのが困難です。私はそれを間違っていると考えています。助言がありますか?

4

1 に答える 1

1

これを参考にしてください。

解決策は次のとおりです。

(items[0]["Genres"] as TaxonomyFieldValueCollection).ToList().Select(x=> x.Label);
于 2013-09-24T22:02:15.800 に答える