Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if a string contains a value within a generic list and replace it

Tags:

string

c#

c#-4.0

I have a string with a message containing some fields I want to swap out to actual values

var message = "Hi [CustomerName]. Its [TODAY], nice to see you were born on the [DOB]!";
var mappingCodes = new List<string> {"[CUSTOMER_NAME]","[DOB]",[TODAY]};
var customEmails = new Dictionary<string, string>();
var today = DateTime.Now;
var customers = new List<Customer>()
{
    new Customer()
        {
            FirstName = "Jo",
            LastName = "Bloggs",
            Email = "[email protected]",
            DOB = "10/12/1960"
        }
};
foreach (var customer in customers)
{
    var emailMessage = "";
    customEmails.Add(customer.Email,emailMessage);
}

What I'm trying to do is loop through each of the customers and take the message replacing any of the mappingCodes with actual codes.
e.g. [Today] Would be the today and CustomerName would be Customer.FirstName + Customer.LastName

There could be 1000's of customers so I need something robust. I'm just not sure how to first check the string contains any of the mappingCodes and then replace them with the desired values.

Any advice?

like image 975
Diver Dan Avatar asked Dec 06 '25 12:12

Diver Dan


1 Answers

You could try something like this. String.Format is rather efficient. It also would allow you to format Date.Today, if you want.

var customers = new List<Customer>()
{
    new Customer()
    {
        FirstName = "Jo",
        LastName = "Bloggs",
        Email = "[email protected]",
        DOB = "10/12/1960"
    }
};
foreach (var customer in customers)
{
    var emailMessage = String.Format("Hi {0}. Its {1}, nice to see you were born on the {2}!", customer.FirstName, DateTime.Today, customer.DOB);
    customEmails.Add(customer.Email,emailMessage);
}
like image 111
Mark Avatar answered Dec 08 '25 02:12

Mark



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!