簡體   English   中英

C#-驗證清單

[英]C# - Verify List

因此,我有這段代碼可以驗證4種顏色(數組“ cores_dos_pontos_medios”)是否出現3個連續幀(來自視頻供稿)。 如果可以,我可以做:

posicao = loc.Coordenadas(cores_dos_pontos_medios); //obtem as coordenadas atraves das cores

問題是它沒有正確驗證。 它仍然發送cores_dos_pontos_medios來定位,即使它沒有連續3次出現。

cores = cores_dos_pontos_medios[0] + " , " + cores_dos_pontos_medios[1] + " , " + cores_dos_pontos_medios[2] + " , " + cores_dos_pontos_medios[3];

int n_de_verificacoes_cores = 3;

if (lista_cores.Count >= n_de_verificacoes_cores)
{
    lista_cores.RemoveAt(0);
}
lista_cores.Add(cores);


if (lista_cores.Count >= n_de_verificacoes_cores && lista_cores.Any(s => s == lista_cores[0]))
{

    posicao = loc.Coordenadas(cores_dos_pontos_medios); //obtem as coordenadas atraves das cores

編輯:現在,我考慮一下,也許我需要刪除列表lista_cores上的所有內容?

問題在於lista_cores.Any(s => s == lista_cores[0])始終為true,因為此指令正在檢查lista_cores的任何元素是否等於lista_cores的第一個元素。 如果要檢查所有元素是否相等,則必須使用lista_cores.All(s => s == lista_cores[0])

從您的“ 我想比較列表中的所有字符串是否都具有相同文本 ”的注釋中,我想您需要這樣的內容,但是我大部分都不理解。

bool containsInvalidData = false;
foreach(string valueToCheck in lista_cores)
{
    if(lista_cores.Any(p => valueToCheck != p)) containsInvalidData = true;
    break;
}

您還可以使用List.ForEach()函數在單個調用中完成此操作

暫無
暫無

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

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