-Code zum Parameter:Linq-Abfrage, wo jedes Element aus Liste <int> gehört string []
string[] seperators = { "," };
string[] typesList = types.Split(seperators, StringSplitOptions.RemoveEmptyEntries);
string[] topicsList = topics.Split(seperators, StringSplitOptions.RemoveEmptyEntries);
if (typesList.Length > 0)
filter = filter & builder.Where(t => typesList.Contains(t.Type));
if (topicsList.Length > 0)
filter = filter & builder.Where(t => topicsList.Any(id => t.Topics.Any(p => id == p.ToString())));
// above doesn't work
Meine Klasse hat folgende Eigenschaften:
public List<int> Topics { get; set; }
public string Type { get; set; }
Wie kann ich Abfrage schreiben, um diese Arbeit zu machen?
Edit:
ich unklar sein könnte, wie Sie in den Kommentaren erwähnt, so ist stattdessen auf diesem Code konzentrieren lassen:
var list = new List<MyClass>();
list = LoadElements();
string[] parametr = { "8", "11" };
var result = list.Where(pm => pm.Topics.Any(t=> t.Equals(8) == true)).ToList();
//this above works for static '8' but I want to query through my 'parametr' list.
MyClass-Objekt ist:
public class MyClass
{
public string Data { get; set; }
public List<int> Topics{ get; set; }
}
Warum funktioniert es nicht arbeiten? Welchen Fehler bekommst du? Und was ist der Filter-Datentyp? Was ist 'Baumeister'? – Ian
Es gibt MongoDB C# -Treiber Zeug, sollte es klarer haben, aber sagen wir mal, es ist der Typ, wo Sie .Where Anweisungen verwenden können. – bombek
Was sind die Fehler, die Sie bekommen? Fehler erstellen? Ausnahmen? Bitte füge sie in deinen Beitrag oben ein. – rinukkusu