정수 목록에 정수가 있는지 찾기
이 코드가 있습니다.
List<T> apps = getApps();
List<int> ids;
List<SelectListItem> dropdown = apps.ConvertAll(c => new SelectListItem
{
Selected = ids.Contains(c.Id),
Text = c.Name,
Value = c.Id.ToString()
}).ToList();
ids.Contains
숫자가 일치하더라도 항상 false를 반환하는 것 같습니다.
어떤 아이디어?
참 / 거짓 결과가 필요한 경우
bool isInList = intList.IndexOf(intVariable) != -1;
intVariable이 목록에 없으면 -1을 반환합니다.
목록이 값으로 초기화되고 해당 값이 목록에 실제로 존재하는 한 Contains는 true를 반환해야합니다.
다음을 시도했습니다.
var list = new List<int> {1,2,3,4,5};
var intVar = 4;
var exists = list.Contains(intVar);
그리고 존재는 참으로 설정됩니다.
다음은 SQL IN 명령과 같은 코딩을 허용하는 확장 방법입니다.
public static bool In<T>(this T o, params T[] values)
{
if (values == null) return false;
return values.Contains(o);
}
public static bool In<T>(this T o, IEnumerable<T> values)
{
if (values == null) return false;
return values.Contains(o);
}
이것은 다음과 같은 것을 허용합니다.
List<int> ints = new List<int>( new[] {1,5,7});
int i = 5;
bool isIn = i.In(ints);
또는:
int i = 5;
bool isIn = i.In(1,2,3,4,5);
당신이 한 방식이 맞습니다. 해당 코드에서 잘 작동합니다. x는 true입니다. 아마도 다른 곳에서 실수를했을 것입니다.
List<int> ints = new List<int>( new[] {1,5,7}); // 1
List<int> intlist=new List<int>() { 0,2,3,4,1}; // 2
var i = 5;
var x = ints.Contains(i); // return true or false
최고의 코드와 완성도는 다음과 같습니다.
NumbersList.Exists(p => p.Equals(Input)
사용하다:
List<int> NumbersList = new List<int>();
private void button1_Click(object sender, EventArgs e)
{
int Input = Convert.ToInt32(textBox1.Text);
if (!NumbersList.Exists(p => p.Equals(Input)))
{
NumbersList.Add(Input);
}
else
{
MessageBox.Show("The number entered is in the list","Error");
}
}
bool vExist = false;
int vSelectValue = 1;
List<int> vList = new List<int>();
vList.Add(1);
vList.Add(2);
IEnumerable vRes = (from n in vListwhere n == vSelectValue);
if (vRes.Count > 0) {
vExist = true;
}
당신은 참조해야 Selected
하지 ids.Contains
마지막 줄에있다.
I just realized this is a formatting issue, from the OP. Regardless you should be referencing the value in Selected. I recommend adding some Console.WriteLine calls to see exactly what is being printed out on each line and also what each value is.
After your update: ids is an empty list, how is this not throwing a NullReferenceException? As it was never initialized in that code block
참고URL : https://stackoverflow.com/questions/3924268/find-if-an-integer-exists-in-a-list-of-integers
'Programing' 카테고리의 다른 글
폰 간격에서 실행되는 앱이 수직으로 스크롤되는 것을 방지하는 방법은 무엇입니까? (0) | 2020.12.14 |
---|---|
Xcode가 키 체인에서이 프로필에 대한 유효한 개인 키 인증서 쌍을 찾을 수 없습니다. (0) | 2020.12.14 |
Facade와 Gateway 디자인 패턴의 차이점은 무엇입니까? (0) | 2020.12.14 |
MySQL 데이터베이스에 데이터를 삽입하려면 어떻게해야합니까? (0) | 2020.12.14 |
Windows 명령 줄에서 관리자로 명령을 실행하는 방법은 무엇입니까? (0) | 2020.12.14 |