c# api 서버에서 요청 데이터 배열과 응답 데이터 배열 비교 후 list 담기

안녕하세요 코딩초보 입니다 독학으로 api 서버를 만들어보고 있습니다
클라이언트에서 요청데이터를 보내고 서버에서 응답데이터를 받아서 테스트를 하고 있는데요

클라이언트에서 요청하는 데이터는

 {
  "classCode": "01",
   "array": [
   {
    "ClassID": "A",
    "Value": "1"
  },
  {
    "ClassID": "B",
    "Value": "1"
  },
  {
    "ClassID": "C",
    "Value": "1"
  },
  {
    "ClassID": "D",
    "Value": "1"
  }
 ]
}

저는 요청받은 데이터를 list에 담고 응답받은 데이터와 비교해서 다시 다른 list에 담을려고 합니다

public List<user_model> List(Dictionary<string, object> param)
{
       .. 코드 생략
       
        List<user_model> tempList = new List<user_model>();

        List<user_model> resultList = new List<user_model>();
        
        jsonReq.Session = param;
        
         .. 코드 생략
}

이런식으로 응답데이터를 받아서 list에 담고 있습니다

응답데이터에는 이런 데이터가 들어옵니다

{
  "Code": "00",
  "Msg": "SUCCESS",
  "Data": [
{
  "className": "aClass",
  "array": [
    {
        "ClassID": "A",
        "Value": "1"
    },
    {
       "ClassID": "B",
       "Value": "1"
    },
    {
       "ClassID": "C",
       "Value": "1"
    },
    {
       "ClassID": "D",
       "Value": "1"
    },
    {
       "ClassID": "E",
       "Value": "1"
    }
  ]
},
{
  "className": "bClass",
  "array": [
    {
        "ClassID": "A",
        "Value": "1"
    },
    {
       "ClassID": "B",
       "Value": "1"
    },
    {
       "ClassID": "C",
       "Value": "1"
    },
    {
       "ClassID": "D",
       "Value": "0"
    },
    {
       "ClassID": "E",
       "Value": "1"
    }
  ]
},
{
  "className": "cClass",
  "array": [
    {
        "ClassID": "A",
        "Value": "1"
    },
    {
       "ClassID": "B",
       "Value": "1"
    },
    {
       "ClassID": "C",
       "Value": "1"
    },
    {
       "ClassID": "D",
       "Value": "0"
    },
    {
       "ClassID": "E",
       "Value": "0"
     }
   ]
  }
 ]
}

templist에 담긴 데이터중 요청 데이터에 array라는 이름의 배열에 있는 데이터와 같은 데이터 뽑고 싶습니다

예를 들어 응답데이터 중 “className” :“aClass” 가 들어있는데 데이터가 요청 데이터에 arry배열과 같습니다

"aClass"가 포함된 데이터만 필터링하여 resultList에 다시 고 싶은데

저는 코드를 이런식으로 작성했는데 오류가 나는데요

resultList .AddRange( 
    tempList.Where( um =>
        um.array[0].Value == param["7"].ToString() &&
        um.array[1].Value == param["8"].ToString() &&
        um.array[2].Value == param["9"].ToString() &&
        um.array[3].Value == param["10"].ToString() 
    ) 
);

람다식으로 통해 필터링해서 resultList에 넣고 싶습니다

제가 작성한 코드를 어떻게 수정하면 될까요?

json의 키 값이 camelCase거나 PascalCase여야 되는데 일관성이 없는 것 같아요. 둘중 하나로 테스트 해야 될 것 같고, 데이터를 grid형으로 다루시는 것 같은데요.
grid형 데이터 포맷으로 다루시게 되면 접근자 처리, 가독성 이슈 등 여러 문제들을 유발합니다.

아래 링크 참조하셔서 도메인 클래스 선언 및 json 변환 처리에 대해 시도해보시면 좋을 것 같습니다.

좋아요 1