Вывести имя массива - C#
Формулировка задачи:
Добрый день. Вопрос такой, нужно найти элемент в массиве, и если он есть, вывести название этого массива например mas1, возможно ли такое реализовать?
Решение задачи: «Вывести имя массива»
textual
Листинг программы
using System;
using System.Linq.Expressions;
namespace Ghost
{
class Program
{
/// <summary>
/// Анальный фистинг
/// </summary>
/// <typeparam name="T">Тип элементов массива</typeparam>
/// <param name="func">Выражение возвращающее массив виде () => массив</param>
/// <param name="item">Элемент, который необходимо найти в массиве</param>
static void Find<T>(Expression<Func<T[]>> func, T item)
{
LambdaExpression lambda = (LambdaExpression)func;
T[] array = (T[])lambda.Compile().DynamicInvoke();
int index = Array.IndexOf<T>(array, item);
if (index > -1)
{
Console.WriteLine("Индекс {0}", index);
Console.WriteLine(
"Название массива {0}",
((MemberExpression)lambda.Body).Member.Name);
}
}
static void Main(string[] args)
{
int[] array111 = new int[] { 1, 2, 3 };
Find<int>(() => array111, 2);
}
}
}