// Аналогично циклу с использованием Any
return !Beads.Any(n => Vector3.Distance(n.position, pos) < 0.1f);
// Можно с использованием All
return Beads.All(n => !Vector3.Distance(n.position, pos) < 0.1f);
false
, если условие будет выполнено хотя бы раз. Any
в этом случае вернёт true
. Поэтому нужно применить инверсию. Также можно переписать операцию использую метод All
. using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp
{
class Program
{
public class Word
{
public Dictionary<string, string> Langs;
}
static void Main(string[] args)
{
List<string> langsToUse = new List<string> { "en", "pl" };
List<Word> wordsList = new List<Word> {
new Word {
Langs = new Dictionary<string, string> {
{"en", "Dog"},
{"pl", "Pies"},
{"ge", "Hund"},
//... and so on
}},
new Word {
Langs = new Dictionary<string, string> {
{"en", "Kat"},
{"pl", ""},
{"ge", ""}
//... and so on
}},
new Word {
Langs = new Dictionary<string, string> {
{"en", "Car"},
{"pl", ""},
{"ge", ""}
//... and so on
}},
};
// select all words with condition
List<Word> validWords_2 = wordsList.Where(w => langsToUse.All(l => w.Langs[l] != "")).ToList();
}
}
}