我正在开发Xamarin.iOS中的应用以识别照片上的脸部。 我使用的是Cognitive Services和Windows SDK。当我发送带有两个面(相当于两个不同的人)的照片时,我会收到两个元素数组:
var result = results[0 or 1]
我想知道如何检查数组是否有两个元素(因为在大多数情况下我只发送一个面,所以结果有一个元素)?
编辑 也许我会展示我的代码:
var result1 = results[1].Candidates[0].PersonId;
var person = await fsc.GetPersonAsync(personGroupId, result);
Console.WriteLine($"Person indentified is {person.Name}");
results[]
是一个返回被识别人的faceID的数组。
我的意思是,如果我发送带有2张脸的照片,我会通过results[0]
和results[1]
- >返回哪些是公认的人的面子ID。我想向用户表明照片上有两个人。但如果我发送的照片有一张脸,则返回数组results[0]
。
答案 0 :(得分:2)
为了找出有多少维度,请使用以下代码。
Console.WriteLine(arr.Rank);
返回维度数。我不熟悉您在那里使用的[0 or 1]
语法。
答案 1 :(得分:2)
对于真正的二维数组:
string[,] example1 = new string[3, 3] {{"a","b","c"},
{"d","e","f"},
{"g","h","i"} };
Console.WriteLine("Array has {0} dimensions, with {1} x {2} = {3} elements total",
example1.Rank,
example1.GetUpperBound(0) + 1,
example1.GetUpperBound(1) + 1,
example1.Length);
对于包含一个或两个元素的简单数组:
string[] example2 = new string[]{"a","b"};
Console.WriteLine("Array has {0} elements.",
example2.Length);
对于锯齿状阵列:
string[][] example3 = new string[][]{{"a,b,c"},
{"1","2","3","4"}};
Console.WriteLine("Array contains [0] arrays with [1] and [2] elements each",
example3.Length,
example3[0].Length,
example3[1].Length);