시스템 변환.목록에 배열
어젯밤 나는 다음과 같은 것이 불가능하다는 꿈을 꾸었습니다.하지만 같은 꿈에서 SO의 누군가가 제게 다르게 말했습니다.그래서 저는 변환이 가능한지 알고 싶습니다.System.Array
로.List
Array ints = Array.CreateInstance(typeof(int), 5);
ints.SetValue(10, 0);
ints.SetValue(20, 1);
ints.SetValue(10, 2);
ints.SetValue(34, 3);
ints.SetValue(113, 4);
로.
List<int> lst = ints.OfType<int>(); // not working
고통을 덜고...
using System.Linq;
int[] ints = new [] { 10, 20, 10, 34, 113 };
List<int> lst = ints.OfType<int>().ToList(); // this isn't going to be fast.
그리고 그냥...
List<int> lst = new List<int> { 10, 20, 10, 34, 113 };
아니면...
List<int> lst = new List<int>();
lst.Add(10);
lst.Add(20);
lst.Add(10);
lst.Add(34);
lst.Add(113);
아니면...
List<int> lst = new List<int>(new int[] { 10, 20, 10, 34, 113 });
아니면...
var lst = new List<int>();
lst.AddRange(new int[] { 10, 20, 10, 34, 113 });
또한 List에 대한 생성자 오버로드가 있습니다...하지만 강력한 유형의 어레이가 필요할 것 같습니다.
//public List(IEnumerable<T> collection)
var intArray = new[] { 1, 2, 3, 4, 5 };
var list = new List<int>(intArray);
배열 클래스의 경우
var intArray = Array.CreateInstance(typeof(int), 5);
for (int i = 0; i < 5; i++)
intArray.SetValue(i, i);
var list = new List<int>((int[])intArray);
흥미롭게도 아무도 질문에 대답하지 않습니다. OP는 강력한 유형을 사용하지 않습니다.int[]
단 하나의Array
.
당신은 그것이 실제로 무엇인지를 캐스팅해야 합니다, 그리고.int[]
그러면 사용할 수 있습니다.ToList
:
List<int> intList = ((int[])ints).ToList();
는 인수가 다음으로 캐스팅될 수 있는지 여부를 먼저 확인하는 목록 생성자를 호출합니다.ICollection<T>
(어레이가 구현하는) 그런 다음 시퀀스를 열거하는 대신 더 효율적인 방법을 사용합니다.
가장 간단한 방법은 다음과 같습니다.
int[] ints = new [] { 10, 20, 10, 34, 113 };
List<int> lst = ints.ToList();
또는
List<int> lst = new List<int>();
lst.AddRange(ints);
열거형 배열을 목록으로 반환하려는 경우 다음을 수행할 수 있습니다.
using System.Linq;
public List<DayOfWeek> DaysOfWeek
{
get
{
return Enum.GetValues(typeof(DayOfWeek))
.OfType<DayOfWeek>()
.ToList();
}
}
vb.net 에서 그냥 이것을 하세요.
mylist.addrange(intsArray)
또는
Dim mylist As New List(Of Integer)(intsArray)
기본적으로 다음과 같이 할 수 있습니다.
int[] ints = new[] { 10, 20, 10, 34, 113 };
이것은 당신의 배열이며, 당신이 다음과 같이 당신의 새로운 목록을 부를 수 있습니다.
var newList = new List<int>(ints);
복잡한 개체에 대해서도 이 작업을 수행할 수 있습니다.
코드를 사용해 보십시오.
Array ints = Array.CreateInstance(typeof(int), 5);
ints.SetValue(10, 0);
ints.SetValue(20, 1);
ints.SetValue(10, 2);
ints.SetValue(34, 3);
ints.SetValue(113, 4);
int[] anyVariable=(int[])ints;
그런 다음 anyVariable을 코드로 사용할 수 있습니다.
두 가지 방법을 알고 있습니다.
List<int> myList1 = new List<int>(myArray);
아니면.
List<int> myList2 = myArray.ToList();
데이터 유형에 대해 잘 알고 있으며 원하는 대로 유형을 변경할 것입니다.
기존 메서드를 사용하면 됩니다. .ToList();
List<int> listArray = array.ToList();
키스(간단하게 유지)
이것이 도움이 되기를 바랍니다.
enum TESTENUM
{
T1 = 0,
T2 = 1,
T3 = 2,
T4 = 3
}
문자열 값 가져오기
string enumValueString = "T1";
List<string> stringValueList = typeof(TESTENUM).GetEnumValues().Cast<object>().Select(m =>
Convert.ToString(m)
).ToList();
if(!stringValueList.Exists(m => m == enumValueString))
{
throw new Exception("cannot find type");
}
TESTENUM testEnumValueConvertString;
Enum.TryParse<TESTENUM>(enumValueString, out testEnumValueConvertString);
정수 값 가져오기
int enumValueInt = 1;
List<int> enumValueIntList = typeof(TESTENUM).GetEnumValues().Cast<object>().Select(m =>
Convert.ToInt32(m)
).ToList();
if(!enumValueIntList.Exists(m => m == enumValueInt))
{
throw new Exception("cannot find type");
}
TESTENUM testEnumValueConvertInt;
Enum.TryParse<TESTENUM>(enumValueString, out testEnumValueConvertInt);
언급URL : https://stackoverflow.com/questions/1603170/conversion-of-system-array-to-list
'UFO ET IT' 카테고리의 다른 글
배치 파일에서 파일을 삭제할 때 "Y/N 확인"을 건너뛰는 방법 (0) | 2023.05.13 |
---|---|
Mongoose 하위 문서 찾기/업데이트 (0) | 2023.05.13 |
VB에서 개체 목록을 정렬합니다.그물 (0) | 2023.05.13 |
Git 저장소 내에서 기존 Git 하위 모듈을 이동하려면 어떻게 해야 합니까? (0) | 2023.05.13 |
Visual Studio VB에서 영역 축소를 비활성화하거나 모든 영역을 확장하는 방법.NET? (0) | 2023.05.13 |