Я реализовал алгоритм Иситара, если это помогает.
public static void Main()
{
string form1 = String.Empty, form2 = String.Empty;
var emails = new List { "biglongemail@email.com", "short@email.com", "mediumsized@email.com"};
FillForms(ref form1, ref form2, emails);
Console.WriteLine("form1: " + form1 + "\nform2: " + form2);
}
private static bool HasRoom(string form, string email) {
return (form + email).Count() <= 100;
}
private static void FillForms(ref string form1, ref string form2, List inputEmails)
{
List emails = inputEmails.OrderBy(email => email.Count()).ToList();
string delim = String.Empty;
bool full = false;
int i = 0;
while (i < emails.Count && !full)
{
full = true;
if (HasRoom(form1, emails[i]))
{
form1 += delim + emails[i];
full = false;
i++;
if (i >= emails.Count()) break;
}
if (HasRoom(form2, emails[i]))
{
form2 += delim + emails[i];
full = false;
i++;
}
delim = ";MAPI:";
}
Как отметил Марк Роттвил , я пытался подключиться к экземпляру LocalDB с помощью JDBC, что казалось невозможным. (ref: здесь )
Однако, я установил jTDS и добавил в мой путь к классу, изменил строку подключения на
jdbc:jtds:sqlserver://./TestBazyDanych;instance=LOCALDB#EB7165FD;namedPipe=true
, создайте соединение с помощью этого Строка подключения, имя пользователя и пароль, и это работает. Номер трубы экземпляра был взят из строки cmd через
sqllocaldb i MSSQLLocalDB