У меня есть два объекта, один AnotherList
, который содержит массив целых чисел, а другой MyFolder
, который содержит массив объектов FolderItem
, который содержит массив объектов ItemKeyword
, которые имеют две строки (в ключе -value-pair style).Невозможно выполнить не в
Я хочу вернуть List<FolderItem>
из MyFolder, что не, на которые ссылается в AnotherList. Я могу получить список предметов, которые являются в списке и включили Linq для этого в нижней части.
Я боролся с. Contains
и .Except
расширений всего дня, но продолжайте получать ошибки. Я надеюсь, что это легко для кого-то.
Это код, где код говорит тысячу слов, так что вот оно.
Запрос Linq в конце возвращает только один FolderItem
на данный момент folderItemID=25
.
Мне нужно, чтобы оно было возвращено FolderItems
folderItemID=26,27,28
.
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Linq;
namespace temp
{
class MyFolder
{
public FolderItem[] items { get; set; }
}
class FolderItem
{
public int folderItemID { get; set; }
public ItemKeyword[] keywords { get; set; }
}
class ItemKeyword
{
public string key { get; set; }
public string value { get; set; }
}
class AnotherList
{
public AnotherListItem[] items { get; set; }
}
class AnotherListItem
{
public int dataID { get; set; }
}
public class TestingClass
{
public static void mainApp()
{
AnotherList List1 = new AnotherList()
{
items = new AnotherListItem[]{
new AnotherListItem(){dataID=1},
new AnotherListItem(){dataID=2},
new AnotherListItem(){dataID=3}
}};
MyFolder List2 = new MyFolder()
{
items = new FolderItem[]
{
new FolderItem()
{
folderItemID=25, keywords= new ItemKeyword[]
{
new ItemKeyword(){key="dataID", value="1"},
new ItemKeyword(){key="description", value="some text"},
}
},
new FolderItem()
{
folderItemID=26, keywords= new ItemKeyword[]
{
new ItemKeyword(){key="dataID", value="4"},
new ItemKeyword(){key="description", value="some other text"},
}
},
new FolderItem()
{
folderItemID=27, keywords= new ItemKeyword[]
{
new ItemKeyword(){key="dataID", value="9"},
new ItemKeyword(){key="description", value="even more other text"},
}
},
new FolderItem()
{
folderItemID=28, keywords= new ItemKeyword[]
{
new ItemKeyword(){key="dataID", value="12"},
new ItemKeyword(){key="description", value="3"},
}
}
}};
List<FolderItem> res = (from someItems in List2.items
from itemKeywords in someItems.keywords
join otherItems in List1.items on itemKeywords.value equals otherItems.dataID.ToString()
where itemKeywords.key == "dataID"
select someItems).ToList<FolderItem>();
}
}
}
* «но я все время получаю ошибки» *. Вы действительно должны поделиться с нами, ** какие ** ошибки вы получите. – abelenky