Мне нужно найти самый большой размер каждого строкового столбца в базе данных в качестве одной из сведений для проектирования другой базы данных.Единственный доступ к исходной базе данных у меня есть через веб-сервис.Я могу просто сделать это для каждого из множества столбцов, чтобы найти самый большой размер, но я хочу, чтобы он был общим, чтобы я мог использовать его позже.
Я написал эту очень упрощенную версию, чтобы ее было легко понять.В двух из последних строк был изобретен синтаксис, и именно здесь мне нужна помощь.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class myClass
{
private string s;
public string S
{
get { return s; }
set { s = value; }
}
private int i;
public int I
{
get { return i; }
set { i = value; }
}
}
class Program
{
static void Main(string[] args)
{
Type myClassType = typeof(myClass);
System.Reflection.PropertyInfo[] propertyInfo = myClassType.GetProperties();
Dictionary<string, int> property = new Dictionary<string, int>();
foreach (System.Reflection.PropertyInfo info in propertyInfo)
if (info.PropertyType == typeof(System.String))
property.Add(info.Name, -1);
myClass[] myPa = new myClass[2];
myPa[0] = new myClass();
myPa[0].S = "1";
myPa[0].I = 0;
myPa[1] = new myClass();
myPa[1].S = "12";
myPa[1].I = 1;
Здесь мне нужна помощь.Я изобрел c[pair.key]
.Как получить ссылку на свойство, имя которого я знаю?
foreach (myClass c in myPa)
foreach (KeyValuePair<string, int> pair in property)
if (c[pair.Key].Length > pair.Value)
property[pair.Key] = c[pair.Key].Length;
foreach (KeyValuePair<string, int> pair in property)
Console.WriteLine("Property: {0}, Biggest Size: {1}", pair.Key, pair.Value);
}
}
}
Вывод должен быть:
Property: S Biggest Size: 2