Red de conocimiento informático - Conocimiento informático - Ayuda a escribir una libreta de direcciones con interfaz en C#

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))

{

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.