실제로 제목이 혼란스럽고 올바른지 확실하지 않습니다. 여기에 다음과 같은 문제가 있습니다. 각 레시피가 requiredItem [] 배열 (크기 15)을 보유하고있는 목록이 있습니다.이 필수 항목 배열에는 레서피에 필요한 항목을 저장할 수 있습니다. 내가해야 할 일은 모든 요리법을 별도의 목록에 넣는 것입니다. 요리법에서 나무를 필수 항목 중 하나로 사용합니다. 예를 들어, 조리법에 나무 테이블을 만드는 데 10 개의 나무가 필요할 수 있습니다. 이 래서 피는 래서 피 목록 내에 있습니다. 빠른 구글 검색 나 다음을 찾아 만든,하지만 난이 requiredItem 인덱스에 액세스 할 수있는 방법을 알아낼 수 없습니다 :리스트 내의 객체에서 배열의 객체 색인을 가져 오는 Linq 코드
이List<Recipe> rec = Main.recipe.ToList();
rec.Select((s, i) => new { i, s })
.Where(t => t.s.requiredItem[indexhere].type == 9)
.Select(t => t.i)
.ToList()
내가이 보이지 않아요 미안 해요, 난 놀라지 않을 것을 대답은 정말 간단합니다.
나는 또한 다음을 시도했다. 오류는 발생하지 않지만 실제로는 요리법을 선택하지 않습니다.
Item refItem = new Item();
refItem.SetDefaults(ItemID.Wood, false);
List<int> selectWood = new List<int>(rec.Select((r, i) => new { i, r }).Where(x => x.r.requiredItem.ToList().Contains(refItem)).Select(x => x.i).ToList());
ErrorLogger.Log(selectWood.ToArray().ToString());
List<int> indices = new List<int>();
foreach (var indice in selectWood)
{
for (int i = 0; i < Main.recipe[indice].requiredItem.Length; i++)
{
var item = Main.recipe[indice].requiredItem[i];
if (item.type == ItemID.Wood && item.stack >= 10) indices.Insert(0, indice);
}
}
foreach (var indice in indices)
{
++numberRecipesRemoved;
rec.RemoveAt(indice);
}
데이터 예제를 설정하고 반환 할 예제 데이터 항목을 표시하십시오. – OmegaMan