Viji
@Viji
DevOps Engineer

Как можно вытащить type содержайщийся внутри List в переменную и использовать для др переменной?

CollectedClientsNew

может иметь 2 типа внутри List

local variable List<ClientViewModelUpdated> 
local variable List<ClientViewModelDefault>


Как можно вытащить этот тип из Lista в другую переменную (изначально неизвестно какой из них будет ClientViewModelUpdated или ClientViewModelDefault), например MyType и использовать в объявлении др переменной, например

x MyType = null;
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Voland69
Можно использовать generic, например сделать extension который возвращает переменную вашего типа с дефолтным значением или инфо о типе.
dotnetfiddle

using System;
using System.Collections.Generic;
					
public class Program
{
	public static void Main()
	{
		var list1 = new List<string>();
		var list2 = new List<double>();
		var list3 = new List<MyCustomType>();
		
		var var1 = list1.MakeDefault();
		var var2 = list2.MakeDefault();
		var var3 = list3.MakeDefault();
		
		Console.WriteLine($"{var1}");
		Console.WriteLine($"{var2}");
		Console.WriteLine($"{var3}");
	}
}

public static class GenericListExtensions
{
	public static Tuple<T, Type> MakeDefault<T>(this List<T> list)
	{
		return Tuple.Create<T, Type>(default(T), typeof(T));
	}
}

public class MyCustomType {}
Ответ написан
freeExec
@freeExec
Участник OpenStreetMap
var typeArg0 = new List<short>().GetType().GenericTypeArguments[0];
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы