Ayuda a escribir una libreta de direcciones con interfaz en C#
Después de observar los requisitos, no es muy complicado, pero debido a que la base de datos no se puede usar, el tiempo de desarrollo será más largo, puedo intentar escribir uno para usted.
============================================ = =================================
Me tomó medio día escribir uno , código fuente En el archivo adjunto, las siguientes son imágenes y código principal:
Código principal: namespace?AddressBook.Utility
{
Usar ?System;
Usar ?System.Collections.Generic;
Usar ?System.IO;
Usar ?System.Linq;
Usar ?Entidades ;
público?static?class?IoHelper
{
público?static?void?CreateDirectoryIfNotExists(cadena? directorio)
{
if?(!Directorio.Existe(directorio))
{
Directorio.Existe(directorio))
{ p>
IfNotExists(cadena? directorio)
if?CreateDirectory(directorio);
}
}
público? Create(fileName) ;
}
}
public?static?void?AppendContact(string?fileName,?Contact?contact)
{
File.AppendAllLines(fileName,?new[]?{?GetLine(contact)?});
}
¿privado?static? cadena?GetLine(Contacto?contacto)
{
return?string.Format(
"{0}t\{1}t\{2} t\{3 }t\{4}t",
contacto.Id,
contacto.Nombre,
contacto.Tipo,
contacto .ConditionalInfo,
contacto.Nacimiento,
contacto.Teléfono,
contacto.Email
}
public?static?IListlt;Contactgt;?GetContactList(string?fileName, string?name?=?null)
{
var?line?=? File.ReadAllLines( fileName);
var?contactList?=?lines.Select(t?=gt;?t.Split('\t') cell?=gt;?new?Contact).
{
Id?=?Guid.Parse(celdas[0]),
Nombre?=?celdas[1],
Tipo? =?(Tipo de contacto)Enum.Pars
e(typeof(ContactType),?cells[2]),
ConditionalInfo?=?cells[3],
Nacimiento?=?Convert.ToDateTime(cells[4]) ,
¿Teléfono?=?celdas[5],
Correo electrónico?=?celdas[6]
}).ToList();
return?Where(c?= gt;?c.Name.StartsWith(name,?StringComparison.InvariantCultureIgnoreCase)).ToList();
}
público?
c.Nacimiento.Mes?==?targetDate.Month?amp;amp;?
c.Birth.Day?gt;=?targetDate.Day?-?
c.Birth.Day?lt;=?targetDate.Day).ToList();
}
public?static?IListlt;Contactgt;?GetContactList(string ?fileName int?month)
{
return?GetContactList(fileName).Dónde(c?=gt;?c.Birth.Month?==?month).ToList( );
}
¿Estática interna?void?DeleteContact(string?fileName,?Contact?contact)
{
var? targetLine?=?GetLine(contacto);
var?lineList?=?File.ReadAllLines(fileName).ToList();
lineList.Remove(targetLine);
Archivo.Delete(nombredearchivo);
¿Usar?(Archivo.Crear(nombre de archivo))
{
}
File.AppendAllLines(fileName,?lineList);
}
internal?FirstOrDefault(l?=gt;?l.Split('\t')[0].Equals (contact.Id.ToString()));
lineList[lineList.IndexOf(targetLine)]?AppendAllLines(fileName,?lineList);
}
}
}
El archivo de configuración debe cambiarse de acuerdo con su situación real. Además, la clasificación es demasiado tarde para mí, creo que puede hacerlo usted mismo. Puse mucho esfuerzo en ello y espero que lo aceptes si lo encuentras útil.